在javascript中,reduce()方法用于對(duì)數(shù)組元素進(jìn)行迭代(累加),會(huì)對(duì)數(shù)組中的所有元素調(diào)用指定的回調(diào)函數(shù)作為累加器,數(shù)組中的每個(gè)值(從左到右)開始縮減,最終計(jì)算為一個(gè)值。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
在javascript中,reduce()方法用于對(duì)數(shù)組元素進(jìn)行迭代(累加),該方法接收一個(gè)函數(shù)作為累加器,數(shù)組中的每個(gè)值(從左到右)開始縮減,最終計(jì)算為一個(gè)值。
reduce() 方法可對(duì)數(shù)組中的所有元素調(diào)用指定的回調(diào)函數(shù)。該回調(diào)函數(shù)的返回值為累積結(jié)果,并且此返回值在下一次調(diào)用該回調(diào)函數(shù)時(shí)作為參數(shù)提供。
語法:
array.reduce(function callbackfn(previousValue, currentVaule, currentIndex, array), initialValue)
function callbackfn(previousValue, currentVaule, currentIndex, array)
:必需參數(shù),指定回調(diào)函數(shù),最多可以接收4個(gè)參數(shù):
-
previousValue:通過上一次調(diào)用回調(diào)函數(shù)獲得的值。如果向 reduce() 方法提供 initialValue,則在首次調(diào)用函數(shù)時(shí),previousValue 為 initialValue。
-
currentVaule:當(dāng)前元素?cái)?shù)組的值。
-
currentIndex:當(dāng)前數(shù)組元素的數(shù)字索引。
-
array:包含該元素的數(shù)組對(duì)象。
initialValue
:可省略的參數(shù),傳遞給函數(shù)的初始值。
下面通過代碼示例來具體了解一下:
示例1:將數(shù)組值進(jìn)行累加求和
var a = [11, 12, 13], sum = 0; function f(pre,curr) { sum=pre+curr; return sum; } a.reduce(f); console.log(sum);
輸出結(jié)果:
36
示例2:將數(shù)組值連接成字符串
var a = [11, 12, 13], str = ''; function f(pre,curr) { str=pre+'-'+curr; return str; } a.reduce(f); console.log(str);
【推薦學(xué)習(xí):javascript高級(jí)教程】