陣列的reduce方法

2022-05-18 18:39:53 字數 1261 閱讀 3639

arr.reduce(callback(accumulator, currentvalue, index, array), initialvalue);

如果沒有initialvalue,預設陣列的第一項為initialvalue,第一次的currentvalue為陣列的第二項:

//

沒有提供initialvalue

function

foo();

reduce方法有兩個引數,第乙個引數是運算元組項的函式;第二個引數則是傳入的初始值,reduce最常用的方法是疊加,以下例子可以看出,reduce函式根據初始值0,不斷的疊加陣列項:

var items = [10, 120, 1000];

//sumsofar第一次初始值是1,item第一次初始值是陣列的第乙個元素即10;

var total = items.reduce(function

add(sumsofar, item) , 1);

console.log(total);

//1131

reduce函式的返回結果型別和傳入的初始值相同,上個例子中初始值為number型別,初始值也可為object型別:

var items = [10, 120, 1000];

//sumsofar第一次即初始值,item第一次為陣列的第乙個元素

var total = items.reduce(function

(sumsofar, item) 10

// 120

// 1000

console.log(sumsofar, item);

sumsofar.sum = sumsofar.sum + item; //

對sumsofar物件的值sum進行處理,累加陣列裡的每一項

return sumsofar; //

返回處理後的sumsofar物件

}, );

console.log(total);

//

var arr = [1,2,3,4,5,6,7,3,4,5,2,2,2];

//p第一次為初始值{},k第一次為陣列的第乙個元素,之後每次迭代p為為處理後(p[k]++ || (p[k] = 1))的p

var info = arr.reduce(function

(p,k), {});

console.log(info);

//

原文:

陣列reduce 方法

reduce 函式接收的引數和map 類似,乙個函式f,乙個list,但行為和map 不同,reduce 傳入的函式f必須接收兩個引數,reduce 對list的每個元素反覆呼叫函式f,並返回最終結果值。例子def f x,y return x y reduce f,1,3,5,7,9 返回結果為2...

陣列 reduce 方法

reduce 是接受乙個函式作為累加器,陣列中每乙個值從左到右計算成乙個值 arr.reduce callback,initialvaluce 1.previousvalue 上一次呼叫返回的值或者是提供的初始值 initialvalue 2.currentvalue 陣列當前被處理的元素 3.in...

陣列(Array)的常用方法(reduce)

reduce 陣列通過此方法,可以實現將每一項疊加稱為一項。使用 sum arr.reduce fun,start 其中,fun為乙個方法,接收四個引數,分別為 cur 當前項的值 index 當前項的index arr 原陣列 其中,start為疊加計算定義型別,並且為初始值,此值可以根據實際情況...