大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
- reduce
reduce 收敛 4个参数,返回的是叠加后的结果, 原数组不发生变化,回调函数返回的结果
//从左向右
//prev 代表前一项,cur 代表当前项
【求和】
let arr =[1,3,5,8,9,7];
let sum = arr.reduce(function(prev,cur,index,arr){
//return 100;//本次的返回值 会作为下一次的prev
return prev+cur;//本次的返回值 会作为下一次的prev
});
console.log(sum);
还可以这样
var arr1 = [{price:50,count:8},{price:50,count:6},{price:45,count:9}];
let totalSum = arr1.reduce(function(prev,cur,index,arr){
return prev.price*prev.count+cur.price*cur.count;
})
console.log("总价格是:",totalSum);//会返回NAN
因为第一次会返回一个数,将作为下一次的prev,就没有price 和 count属性了
解决办法
let totalSum1 = arr1.reduce(function(prev,cur,index,arr){
return prev+cur.count*cur.price;
},0);//默认指定第一次的prev
console.log("总价格是:",totalSum1);
【求和乘】
let arr2 = [1,2,3];
let res = arr2.reduce(function(prev,cur,index,arr){
//return Math.pow(prev,cur);//幂运算
return prev**cur;//也可以写成这样
})
console.log(res);
幂运算
Math.pow 等价于 **
【将一个二维数组变为一维数组】
let arr3 = [[1,2,3],[4,5,6],[7,8,9]];
let newArr = arr3.reduce(function(prev,cur){
return prev.concat(cur);
})
console.log("一维数组为:",newArr);
- reduceRight()//从右向左
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/188780.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...