reduce对数组及数组对象的常见操作
语法:
array.reduce(function(prev, currentValue, currentIndex, arr), initialValue)
prev: 初始值,或者是计算结束后的返回值
currentValue: 当前元素
currentIndex: 当前元素的索引
arr: 当前元素所属的数组对象
initialValue: 初始值
什么时候用它?
当多个数据最终变成一个数据的时候
有道面试题,给定一个数组,让我求它的平均数,我先用for循环利用每项累加,除以数组长度来计算的
面试官让我用其他方法解决,这时候就可以用reduce来解决
原数组 var arr = [1, 2, 3, 6, 8]
// 数组求和
var sum = arr.reduce((prev, currentVal) => { return prev+ currentVal; }, 0)
// 平均数
var average = arr.reduce((prev, currentVal) => { return (prev + currentVal) / arr.length; }, 0)
// 数组去重
var newArr = arr.reduce((prev, cur) => { prev.indexOf(cur) === -1 && prev.push(cur); return prev; },[]);
// 对象数组求和 var result = [ { name: 'lily', age: 18 }, { name: 'lucy', age: 20 }, { name: 'lulu', age: 35 } ]; var sumAge = result.reduce((accumulator, cur) => { return accumulator + cur.age; }, 0);
// 求数组最大值 var maxVal = arr.reduce((prev, cur) => { return prev > cur ? prev : cur; }, 0);
大概这些,后期再加~~
~

浙公网安备 33010602011771号