1.reduce()的語(yǔ)法:
//語(yǔ)法:
Array.reduce(callback,initValue);
2.reduce()參數(shù)解釋:
callback : callback是reduce函數(shù)的回調(diào)函數(shù),可以對(duì)數(shù)組中的數(shù)據(jù)項(xiàng)進(jìn)行累加,其中reduce()函數(shù)接收四個(gè)參數(shù)翰撑,分別是:preValue,curValue,index,arr
- preValue : 上次回調(diào)函數(shù)的返回值,或者提供的初始值(initValue);
- curValue : 數(shù)組中正在被處理的數(shù)據(jù)項(xiàng);
- index : 正在被處理的數(shù)據(jù)項(xiàng)的下標(biāo);
- arr : 調(diào)用reduce()函數(shù)的數(shù)組贫母;
initValue : 作為第一次調(diào)用callback函數(shù)的第一個(gè)參數(shù);
- reduce()方法對(duì)數(shù)組中的每一個(gè)數(shù)據(jù)項(xiàng)執(zhí)行callback函數(shù)盒刚,但是不包括數(shù)組中已經(jīng)被刪除或者從未被賦值的元素腺劣,回調(diào)函數(shù)在第一次執(zhí)行的時(shí)候,如果initValue在調(diào)用reduce的時(shí)候被提供因块,那么回調(diào)函數(shù)的第一個(gè)參數(shù)preValue等于initValue,并且curValue等于數(shù)組中的第一個(gè)元素橘原,如果initValue在調(diào)用reduce的時(shí)候沒(méi)有提供,那么回調(diào)函數(shù)中的第一個(gè)參數(shù)preValue等于數(shù)組中的第一個(gè)元素贮聂,并且curValue等于數(shù)組中的第二個(gè)元素靠柑。
var arr = [10,11,12,13,14];
arr.reduce((preVaule,curValue,index,arr)=>{
debugger;
return preVaule + curValue;
},0)
//把obj對(duì)象中的每一個(gè)屬性追加"ABC";
var obj = {name:'tom',age:'15',tel:'123489',salary:'10000'};
Object.keys(obj).reduce((pre,cur,index) => {
var prefix = 'ABC';
pre[[prefix,cur].join("_")] = obj[cur];
return pre;
},{})
//{ABC_name: "tom", ABC_age: "15", ABC_tel: "123489", ABC_salary: "10000"}