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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • stl库使用_餐厅库管年终总结个人总结

    stl库使用_餐厅库管年终总结个人总结1、STL库的含义STL(StandardTemplateLibrary),即标准模板库,是一个具有工业强度的,高效的C++程序库。2、STL的好处STL作为一种标准,便于交流,掌握它,一方面可以让你写的程序,易于让别人理解,另一方面你也能够比较容易地理解别人写的程序。3、STL的关键概念要使用STL,要了解以下几个基本概念:容器:可以把它理解为存放数据的地方,常用的一些容器有链表(list)栈(stack)动态数组(vector…

    2022年10月15日
  • WPF Visifire图表控件使用基础

    WPF Visifire图表控件使用基础https://www.cnblogs.com/wyuan/archive/2012/07/22/WPF.html引言:  由于项目中需要使用Visifire所以自己就写了一些demo,大家一起共享!基础Visifire图表的展示1.Visifire的创建需要引用的DLL包【WPFToolkit.dll;WPFVisifire.Charts;WPFVisifire.Gauges(这个以后会用到)】2

    2022年7月21日
  • python 内置函数详解

    python 内置函数详解

    2021年7月5日
  • 强大的 IDEA 代码生成器,学会用,真香!

    强大的 IDEA 代码生成器,学会用,真香!

    2020年11月13日
  • Maven name与artifactId 区别[通俗易懂]

    name:Thefullnameoftheproject.artifactId:TheidentifierforthisartifactthatisuniquewithinthegroupgivenbythegroupID.Anartifactissomethingthatiseitherproducedorused

    2022年4月17日
  • vim保存和退出_vim编辑器保存退出

    vim保存和退出_vim编辑器保存退出退出vim的快捷键,不需要进入命令编辑模式按住shiftzz保存退出zq不保存退出,q表示放弃之所以按住shift,其实是切换大小写在命令编辑模式下::q不保存退出:q!不保存强制退出:wq保存退出,w表示写入,不论是否修改,都会更改时间戳:x保存退出,如果内容未改,不会更改时间戳“:x”和“:wq”的区别如下:(1…

    2022年8月24日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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