定义:
减少()方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。对空数组是不会执行回调函数的。
案例
1.数组求和
//1.数组求和var arr=[1,5,8,6,15,78,65,25,48,55] var sum=arr.reduce(函数(总计,当前值){返回总计当前值;});控制台。对数(和);//306 var eachSum=0;arr.forEach(函数(当前值){每个总和=当前值;})控制台。日志(每个总和);//3062.合并二维数组
//2.合并二维数组var twoArr=[['mu ',' zi'],['dig ',' big'],['lucky ',' jiji ']];var oneArr=twoArr.reduce(函数(total,currentValue){//console。日志(总计)返回总计。concat(CurrentValue);})控制台。日志(oneArr);//['木','子','挖','大','幸运','吉吉']3。统计一个数组中有多少个不重复的单词:
//3.统计一个数组中有多少个不重复的单词: //不用减少时:var arr=['苹果','橙','苹果','橙','梨','橙'];函数getwordcont(){ var obj={ };for(var i=0,l=arr.lengthI lI){ var item=arr[I];obj[item]=(obj[item]1)| 1;}返回控制台。log(GetWordCnt());//{apple: 2,orange: 3,pear: 1} //用减少时:var arr=['苹果','橙','苹果','橙','梨','橙'];函数getwordcont(){ return arr . reduce(函数(prev,next){ prev[next]=(prev[next]1)| | 1;返回prev},{ });}控制台。log(GetWordCnt());//{苹果: 2,桔子: 3,珍珠: 1}4。对减少的理解:
减少(回调,初始化)会传入两个变量,回调函数(回调)和初始值(初始版本).
假设函数有个传入参数,prev和接下来,索引和数组。上一个和然后是你必须要了解的。
当没有传入初始值时,prev是从数组中第一个元素开始的,下一个是第二个函数。
但是当传入初始值(初始版本)后,第一个上一个将是初始值,下一个将是数组中的第一个元素。
比如:
//4.对减少的理解:var arr=['苹果','橘子'];函数noPassValue(){ return arr.reduce(函数(prev,next){ console.log('prev: ',prev);console.log('next: ',next);返回prev });}函数passValue(){ return arr.reduce(函数(prev,next){ console.log('prev: ',prev);console.log('next: ',next);prev[next]=1;返回prev},{ });} console.log('无附加参数' : ',noPassValue());控制台。日志('-');console.log('With {}作为附加参数' : ',passValue());/* VM 41567:4 prev : apple VM 41567:5 next : orange VM 415673:4 prev : apple VM 41567:5 next : orange VM 415673:19无附加参数苹果vm41567:20-vm4156770若有不足请多多指教!希望给您带来帮助!
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接