阅读:6630回复:1
理解 ES6 — reduce/map/forEach 的区别1 forEach (让数组中的每一项都做一件事,数组改变) 如果不做特殊处理,一般情况下,不会break的。如果需要中途跳出循环,建议直接用for语句好了。 let arr = [1,2,3,4,5]; arr.forEach((item,index)=> { console.log(item); }) // 1,2,3,4,5 2 map (让数组通过某种计算,产生一个新数组) let arr = [1,2,3,4,5]; let newArray = arr.map((item,index)=> { return item * 2 }); newArray // [2, 4, 6, 8, 10] arr // [1,2,3,4,5] 这里返回的是一个新的数组,并不会改变原来数组。 3 reduce (让数组中的前项和后项做某种计算,并累计最终值) let arr = [1,2,3,4,5]; let result = arr.reduce((prev, cur, index, arr)=> { return prev + cur; }); allbackFunction 包含4个参数,先解释下它们的意思: prev:第一项的值或者上一次叠加的结果值 此时,初始值默认为数组的 [0],如果想自定义初始值,那可以给reduce添加第二个参数(initialValue),如下 let result = arr.reduce((prev, cur, index, arr)=> { return prev + cur; }, -5); // 如果是累加,一定要注意 initialValue 的类型,如果设置成了字符串,根据 “两者相加,值类型与第一个加数相同”,那么结果就是一个字符串。 |
|
沙发#
发布于:2020-03-14 21:56
4 filter (筛选处数组中符合条件的项,返回一个新数组)
let arr = [1,2,3,4,5]; let newArray = arr.filter((item,index)=> { return item > 3; }); newArray // [4,5] 5 every (检测数组中的每一项是否符合条件) 可以理解成 && '且'的关系 let arr = [1,2,3,4,5]; let result = arr.every((item,index)=> { return item > 0; }); result // true 6 some (检测数组是否有某些项目符合条件) 可以理解成 || '或'的关系 let arr = [1,2,3,4,5]; let result = arr.some((item,index)=> { return item > 2; }); result // true |
|