reduce對陣列及陣列物件的常見操作
阿新 • • 發佈:2022-04-01
語法:
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);
大概這些,後期再加~~