js reduce 累加数组里对象某个属性的和 NaN

var temp = [ { "y": 32 }, { "y": 60 }, { "y": 60 } ];
var reduced = temp.reduce(function(a, b) {return a.y + b.y;
});console.log(reduced); // Prints NaN

原因:写法错误,第一个参数应当作为累加结果,并且赋初值 0

修正方法1

var temp=[{"name":"Agency","y":32,"drilldown":{"name":"Agency","categories":["APPS & SI","ERS"],"data":[24,8]}},{"name":"ER","y":60,"drilldown":{"name":"ER","categories":["APPS & SI","ERS"],"data":[7,53]}},{"name":"Direct","y":60,"drilldown":{"name":"Direct","categories":["APPS & SI","ERS"],"data":[31,29]}}];var reduced = temp.reduce(function (r, a) {return r + a.y;//    ^^^ use the last result without property}, 0);
//   ^^^ add a start value
console.log(reduced) // r

修正方法2

var temp=[{"name":"Agency","y":32,"drilldown":{"name":"Agency","categories":["APPS & SI","ERS"],"data":[24,8]}},{"name":"ER","y":60,"drilldown":{"name":"ER","categories":["APPS & SI","ERS"],"data":[7,53]}},{"name":"Direct","y":60,"drilldown":{"name":"Direct","categories":["APPS & SI","ERS"],"data":[31,29]}}];var reduced = temp.map(function(obj) { return obj.y; }).reduce(function(a, b) { return a + b; });console.log(reduced);

js reduce 累加数组里对象某个属性的和 NaN相关推荐

  1. JS总结:数组 字符串 对象

    JS总结:数组 字符串 对象 JS中的数据分类: 1)基本数据类型  数据存储在栈区 number, string, boolean, und, null 2)引用数据类型  数据存储在堆区(引用地址 ...

  2. js循环遍历数组(对象)

    js循环遍历数组(对象) 1,for循环 对于循环应该是最常用的一种遍历方式了,通常用来遍历数组结构. let arr = ['a','b','c']; for (let i=0; i<arr. ...

  3. 递归——函数在内部自己调用自己,那么该函数是递归函数 作用和循环效果一样 要加推出条件return,否则发生栈溢出,导致死循环 递归给数组中对象添加属性 toString()和随机数

    递归--函数在内部自己调用自己,那么该函数是递归函数 & 作用和循环效果一样 & 要加推出条件return,否则发生栈溢出,导致死循环 & 递归给数组中对象添加属性 & ...

  4. 根据数组中对象的属性值排序倒叙

    数组中对象的属性值排序倒叙demo function compare(e) {return function (a, b) {var value1 = a[e];var value2 = b[e];r ...

  5. JS 取Json数据中对象特定属性值

    解析JSON JSON 数据 var str = '[{"a": "1","b": "2"}, {"a&quo ...

  6. java和js中遍历数组和对象的总结

    java和js中遍历数组和对象的总结 在这儿写遍历数组和对象,权当复习和总结 1.java中数组的三种初始化方法 ①静态初始化 [java] view plaincopy 1. int[] arr = ...

  7. js中给数组中对象去重

    被问到如何给数组中对象去重,想到set答案肯定错误的,这个平时工作中用到的不多,查阅资料,找到给数组中对象去重的方法,利用对象属性名的唯一性,怪自己当时没想到. 方法一: let ary=[{id: ...

  8. javascript中对一个对象数组按照对象某个属性进行排序

    在javascript中,对象和数组是两种不同的类型,这和php中的数组概念不同.在javascript中,也有一些精妙的算法,用来对一些对象进行排序.我在面试迅雷的时候,也拿到一道题,当时做题的时候 ...

  9. android两个数组对象去重合并,js 两个数组(对象)去重合并

    项目前台代码中需要用到数组的去重操作,其实也不难,就算是对象数组,判断下对应的属性值也是可以实现的,但是如果我实现的话肯定是最常见的双重for循环,加个flag标记,老套的不能行了,想了想,还是上网找 ...

最新文章

  1. Python培训教程:pycharm常用的快捷键合集
  2. Mybatis (ParameterType) 如何传递多个不同类型的参数
  3. 【实用】SAP Call Transaction下钻功能大全
  4. (一)easyUI之树形网络
  5. 使用C和汇编实现一个加法操作
  6. 第2节 mapreduce深入学习:15、reduce端的join算法的实现
  7. windows查看GPU信息(nvidia-smi)
  8. 如何从Mac删除Bing重定向
  9. C++11 decltype
  10. SpringAop+Mybatis 实现动态切换数据库操作
  11. Abaqus帮助文档翻译(一)快速介绍有限元
  12. php时间戳转换英文格式日期_php中时间戳和日期格式的转换
  13. 信息学奥赛一本通(1097:画矩形)
  14. 联想笔记本插入耳机仍外放--解决方式
  15. 1089: 手机短号 (多实例)
  16. mysql 创建存储过程语法_mysql存储过程语法及实例
  17. egg 添加 samesite=none, 出现感叹号
  18. Stream流练习题大全以及答案
  19. lterator 迭代器 静态属性Symbol.iterator Symbol(Symbol.iterator)
  20. alipay 证书 java_alipay-sdk-java

热门文章

  1. shell脚本中等待上一条命令执行结束在执行下一条。
  2. 如何使用 vimdiff 来 git diff
  3. OpenFlow Tutorial
  4. SQL SERVER插入数据操作
  5. 集合_java集合框架
  6. python用哪种字体比较好_你在用哪种编程字体?
  7. 研华PCI板卡开发(6)快速入门(6)属性列表
  8. TCP三次握手原理详解
  9. 这个在线文本编辑器的源代码
  10. Pandas批量拆分Excel与合并Excel