reduce实现数组求和_js数组reduce

reduce实现数组求和_js数组reducereducereduce收敛4个参数,返回的是叠加后的结果,原数组不发生变化,回调函数返回的结果//从左向右//prev代表前一项,cur代表当前项【求和】letarr=[1,3,5,8,9,7];letsum=arr.reduce(function(prev,cur,index,arr){ //return100;//本次的返回值…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

  1. 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);
  1. reduceRight()//从右向左
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/188780.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号