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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Django框架—目录文件简介

    1.创建工程2.工程目录结构3.各文件作用:1manage.py2init.py3settings.py该Django项目(此处是mysite)的设置文件或配置文件。 重要

    2022年3月29日
    54
  • break能不能跳出if语句_python while if

    break能不能跳出if语句_python while if广告关闭腾讯云11.11云上盛惠,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!虽然在python中的for循环与其它语言不大一样,但跳出循环还是与大多数语言一样,可以使用关键字continue跳出本次循环或者break跳出整个for循环。breakforxinrange(10):ifx==5:breakprintx上面使用的break循环,所以执行到x==5…

    2022年9月26日
    3
  • (翻译)什么是Java的永久代(PermGen)内存泄漏

    (翻译)什么是Java的永久代(PermGen)内存泄漏转自:http://www.codelast.com/本文是我对这篇文章的翻译:WhatisaPermGenleak? 为了便于阅读,我将原文附于此处,翻译穿插在其中。此外,为了防止原链接在未来某一天失效后,文中的图片再也看不到的问题,我将原文中的图片也保存到了本站的服务器上,我不知道原作者是否允许这样做,但我翻译本文仅在于传播知识的目的,在此向原作者表示深深的感谢:感谢你

    2022年6月29日
    36
  • java面试题高级_Java高级面试题整理(附答案)[通俗易懂]

    java面试题高级_Java高级面试题整理(附答案)[通俗易懂]javajava8java开发Java高级面试题整理(附答案)这是我收集的10道高级Java面试问题列表。这些问题主要来自Java核心部分,不涉及JavaEE相关问题。你可能知道这些棘手的Java问题的答案,或者觉得这些不足以挑战你的Java知识,但这些问题都是容易在各种Java面试中被问到的,而且包括我的朋友和同事在内的许多程序员都觉得很难回答。1…

    2022年7月18日
    15
  • WPF Visifire 图表控件「建议收藏」

    WPF Visifire 图表控件「建议收藏」VisifireWPF图表控件激活成功教程可能用WPF生成过图表的开发人员都知道,WPF虽然本身的绘图能力强大,但如果每种图表都自己去实现一次的话可能工作量就大了,尤其是在开发时间比较紧的情况下。这时候有必要借助一种专业的图表工具。Visifire是专为WPF、SliverLight、WP开发人员制定的一套图表控件,实现了一系列的专业图表(如:柱图、…

    2022年7月21日
    17
  • c语言 按字节异或,C语言位数算,按位异或.只知道按位异或原理 不知道这题怎么做…

    c语言 按字节异或,C语言位数算,按位异或.只知道按位异或原理 不知道这题怎么做…从键盘读入两个整数,对它们进行按位异或操作,把操作结果按二进制位放在字符数组str中,最后输出该字符串。提示:第2个空建议使用条件表达式(?表达式)实现!程序的运行效果应类似地如图1和图2所示,图1中的1270和图2中的123456是从键盘输入的内容。Pleaseinputnum1andnum2:1270127^0=0000000000000000000000000111…

    2022年6月5日
    30

发表回复

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

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