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為疊加計算定義型別,並且為初始值,此值可以根據實際情況...