Array.prototype.reduce()

1、What

reduce() 方法 : 對(duì)累加器和數(shù)組的每個(gè)值(從左向右)應(yīng)用一個(gè)函數(shù),以將其減少為單個(gè)值。
返回值為函數(shù)累計(jì)處理的結(jié)果。

2、How

⑴語(yǔ)法

arr.reduce(callback,[initialValue])

callback 執(zhí)行數(shù)組中每個(gè)值的函數(shù),有四個(gè)參數(shù):
accumulator 上一次調(diào)用回調(diào)返回的值,或者是提供的初始值(initialValue);
currentValue 數(shù)組中正在處理的元素;
currentIndex 數(shù)據(jù)中正在處理的元素索引,如果提供了initialValue,從0開(kāi)始;否則從1開(kāi)始;
array 調(diào)用reduce的數(shù)組。
initialValue 可選,其值用于第一次調(diào)用 callback 的第一個(gè)參數(shù)。

描述

reduce 為數(shù)組中的每一個(gè)元素依次執(zhí)行回調(diào)函數(shù),不包括數(shù)組中被刪除或從未被賦值的元素,接受四個(gè)參數(shù):初始值 accumulator
(或者上一次回調(diào)函數(shù)的返回值),當(dāng)前元素值 currentValue
,當(dāng)前索引 currentIndex ,調(diào)用 reduce 的數(shù)組。
回調(diào)函數(shù)第一次執(zhí)行時(shí),accumulator和 currentValue 的取值有兩種情況:調(diào)用 reduce 時(shí)提供initialValue,accumulator 取值為 initialValue ,currentValue 取數(shù)組中的第一個(gè)值;沒(méi)有提供 initialValue ,accumulator 取數(shù)組中的第一個(gè)值,currentValue 取數(shù)組中的第二個(gè)值。
注意: 不提供 initialValue ,reduce 會(huì)從索引1的地方開(kāi)始執(zhí)行 callback 方法,跳過(guò)第一個(gè)索引。提供 initialValue ,從索引0開(kāi)始。
如果數(shù)組為空并且沒(méi)有提供initialValue, 會(huì)拋出TypeError
。如果數(shù)組僅有一個(gè)元素(無(wú)論位置如何)并且沒(méi)有提供initialValue, 或者有提供initialValue但是數(shù)組為空,那么此唯一值將被返回并且callback不會(huì)被執(zhí)行。
Array.prototype.reduce()

⑵例子
例1:

var students = [
    {id:1,score:80},
    {id:2,score:50},
    {id:3,score:70}
];
var sum = function(previousResult,item,index,array){
    return previousResult+item.score;
};
students.reduce(sum,0);  // 200```

例2:http://www.itdecent.cn/p/6cb6dec225c8
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 創(chuàng)建數(shù)組 arr.length--- title: js正則表達(dá)式categories: javascriptda...
    angelwgh閱讀 1,465評(píng)論 0 2
  • 3、some、every some : some() 方法測(cè)試數(shù)組中的某些元素是否通過(guò)由提供的函數(shù)實(shí)現(xiàn)的測(cè)試 語(yǔ)法...
    七_(dá)五閱讀 277評(píng)論 0 0
  • Array的reduce()把一個(gè)函數(shù)作用在這個(gè)Array的[x1, x2, x3...]上,這個(gè)函數(shù)必須接收兩個(gè)...
    風(fēng)起云帆閱讀 435評(píng)論 0 0
  • 定義數(shù)組 用字面量創(chuàng)建 用new Array()創(chuàng)建 或 Array.indexOf 返回在數(shù)組中可以找到給定元素...
    zqyadam閱讀 1,096評(píng)論 0 48
  • 今天和朋友們提到這兩個(gè)詞,我對(duì)這兩種狀態(tài)很熟悉,有些感觸,不妨說(shuō)說(shuō)。 孤單對(duì)我來(lái)說(shuō)比孤獨(dú)要淺層得多,也許它只是處在...
    心如美玉閱讀 167評(píng)論 0 2

友情鏈接更多精彩內(nèi)容