reduce/map/filter
filter过滤器;map映射;
reduce:
let arr=[1,2,3,5]
let total = arr.reduce((pre,cur,index)=>{
console.log("pre:"+pre);
console.log("cur:"+cur);
console.log("index"+index)
return pre+cur;
},0)//设置初始值0,也可以不设置,结果一样,index是可选参数
console.log(total)
//原理,遍历数组,执行回调,prevlaue就是上一次的return的值,初始是0;currvalue就是当前遍历的值
//"pre:0"
// "cur:1"
// "index0"
// "pre:1"
// "cur:2"
// "index1"
// "pre:3"
// "cur:3"
// "index2"
// "pre:6"
// "cur:5"
// "index3"
// 11
forEach()
注意: 除了抛出异常以外,没有办法中止或跳出 forEach()
循环。如果你需要中止或跳出循环,forEach()
方法不是应当使用的工具。
若你需要提前终止循环,你可以使用:
- 一个简单的 for 循环
- for...of / for...in 循环
- Array.prototype.every()
- Array.prototype.some()
- Array.prototype.find()
- Array.prototype.findIndex()
这些数组方法则可以对数组元素判断,以便确定是否需要继续遍历:
译者注:只要条件允许,也可以使用 filter() 提前过滤出需要遍历的部分,再用 forEach()
处理。