reduce数组里的对象值求和,乘积,常用方法

693 阅读1分钟

非常快速简单的进行求和计算console.log(newArr); // [0, 1, 2, 3, 4, 5]

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

total必需。初始值, 或者计算结束后的返回值。
currentValue必需。
当前元素currentIndex可选。
当前元素的索引arr可选。
当前元素所属的数组对象。
initialValue可选。传递给函数的初始值

const array = [{a: 1, num: 100}, {b: 2, num: 200}];
const total = array.reduce((prev, cur) => prev + cur.num, 0);
console.log(total); // 300

const arr = [1,2,3,4]
const mul = array.reducy((x,y) => x*y)
console.log(mul);  // 24


#二维数组转换
let arr = [[0, 1], [2, 3], [4, 5]]
let newArr = arr.reduce((pre,cur)=>{    
    return pre.concat(cur)
},[])
console.log(newArr); // [0, 1, 2, 3, 4, 5]

#将多维数组转化为一维
let arr = [[0, 1], [2, 3], [4,[5,6,7]]]
const newArr = function(arr){
   return arr.reduce((pre,cur)=>pre.concat(Array.isArray(cur)?newArr(cur):cur),[])
}
console.log(newArr(arr)); //[0, 1, 2, 3, 4, 5, 6, 7]