今天小编就为大家分享一篇关于射流研究…中的减少()函数讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
定义:
减少()方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。对空数组是不会执行回调函数的。
案例
1.数组求和
//1.数组求和
var arr=[1,5,8,6,15,78,65,25,48,55]
var sum=arrreduce(function(total,currentValue){
返回当前总值;
});
控制台。log(总和);//306
var每个总和=0;
由…改编foreach(函数(当前值){
eachSum=当前值
})
控制台。日志(每笔);//306
2.合并二维数组
//2.合并二维数组
var twoArr=['木','子'],['挖','大'],['吉','吉']];
变量一数组=二数组。reduce(function(total,currentValue){
//console.log(总计)
返回总计。concat(当前值);
})
控制台。日志(一个arr);//['木','子','挖','大','吉]
3.统计一个数组中有多少个不重复的单词:
//3.统计一个数组中有多少个不重复的单词:
//不用减少时:
var arr=['苹果','橘子','苹果','橘子','梨','橘子'];
函数getWordCnt(){
var obj={ };
for(var i=0,l=arr.lengthI li ){
var item=arr[I];
obj[item]=(obj[item]1)| | 1;
}
返回目标文件
}
控制台。log(getword CNT());//{苹果:2,橘子:3,梨:1}
//用减少时:
var arr=['苹果','橘子','苹果','橘子','梨','橘子'];
函数getWordCnt(){
return arr.reduce(function(prev,next){
prev[next]=(prev[next]1)| | 1;
返回上一个
},{});
}
控制台。log(getword CNT());//{苹果:2,橘子:3,梨:1}
4.对reduce的理解:
减少(回调,初始值)会传入两个变量,回调函数(回拨)和初始值(初始值).
假设函数有个传入参数,上一页和接下来,索引和数组。上一个和然后是你必须要了解的。
当没有传入初始值时,上一页是从数组中第一个元素开始的,下一个是第二个函数。
但是当传入初始值(初始值)后,第一个上一个将是初始值,下一个将是数组中的第一个元素。
比如:
//4.对减少的理解:
var arr=['苹果','橘子'];
函数noPassValue(){
return arr.reduce(function(prev,next){
console.log('prev:',prev);
console.log('next:',next);
返回上一个
});
}
函数passValue(){
return arr.reduce(function(prev,next){
console.log('prev:',prev);
console.log('next:',next);
prev[next]=1;
返回上一个
},{});
}
console.log('无附加参数:',无传递值());
控制台。日志('-');
console.log('用{}作为附加参数:',传递值());
/*
VM415673:4上一版:苹果
VM415673:5下一个:橙色
VM415673:4上一版:苹果
VM415673:5下一个:橙色
VM415673:19没有附加参数:苹果
VM415673:20 -
VM415673:13上一个:{}
下一个:苹果
VM415673:13上一页:{苹果:1}
VM415673:14下一个:橙色
VM415673:21,使用{}作为附加参数:{苹果:1,橘子:1}
*/
若有不足请多多指教!希望给您带来帮助!
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。