1 Star 0 Fork 0

math.most/js_study

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
012.2map及reduce.js 2.21 KB
一键复制 编辑 原始数据 按行查看 历史
math.most 提交于 2021-09-21 15:35 +08:00 . 修改写法
/**
* map、filter、reduce
*/
// ---> map: 复制,遍历并复制原数组为新数组
// 原理:
// 1. map内部先创建一个新数组
// 2. 然后才是带着回调函数一起遍历原数组
// 3. 自动将回调函数在每个元素上执行一次,将回调函数的结果放入到新数组中相同的位置上
// 4. 遍历结束返回新数组
var oneList = [1, 2, 3, 4, 5, 6]
var newOneList = oneList.map(
function (value, i, arr) {
return value ** 2
}
)
console.log(oneList) // [1, 2, 3 ,4, 5, 6]
console.log(newOneList) // [ 1, 4, 9, 16, 25, 36 ]
// ---> filter: 过滤,复制出原数组符合条件的元素组成新数组返回,原数组不变
// 原理:
// 1. map内部先创建一个新数组
// 2. 然后才是带着回调函数一起遍历原数组
// 3. 自动将回调函数的结果验证,如果为true则放入到新数组中
// 4. 遍历结束返回新数组
var filterOneList = oneList.filter(
function (value, i, arr) {
return value > 3
}
)
console.log(oneList) // [1, 2, 3 ,4, 5, 6]
console.log(filterOneList) // [ 4, 5, 6 ]
// ---> reduce: 汇总,对数组中的元素进行统计得出最终结论
var reduceOneList = oneList.reduce(
function (prev, elem, i, arr) {
// prev: 保存到截止当前元素的临时汇总结果
// return 将当前元素elem累加到prev中,得到新的汇总值
return prev + elem
}
)
console.log(oneList) // [1, 2, 3 ,4, 5, 6]
console.log(reduceOneList) // 21
// 统计一个字符串中每个字符出现的个数, 并且那个字符出现次数最多, 是几次?
var oneStr = "helloworld"
var oneStrToList = [...oneStr]
var res = oneStrToList.reduce((res, c) => {
res[c] ? res[c]++ : res[c] = 1;
return res
}, {})
console.log(res) // { h: 1, e: 1, l: 3, o: 2, w: 1, r: 1, d: 1 }
function CharTotal() {
var char, count
for(var key in res) {
if(char === undefined) {
char = key
count = res[key]
} else {
if(res[key] > count) {
char = key
count = res[key]
}
}
}
console.log(char, count) // l 3
}
CharTotal()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/mathmost/js_study.git
git@gitee.com:mathmost/js_study.git
mathmost
js_study
js_study
master

搜索帮助