javascript - 如何将两个或多个 JSON 对象求和为一个

标签 javascript jquery object

嗨,我有以下 JSON 对象;

var obj1 = {"a":1,"b":1,"c":1};
var obj2 = {"a":2,"b":2,"c":2};
var obj3 = {"a":3,"b":3,"c":3};

我想对以上 3 个 json 对象求和或相减 我想要最终结果为

  {"a":6,"b":6,"c":6}

我知道通过使用不同类型的循环非常简单。但我想知道javascript中是否存在任何函数来合并多个JSON对象并添加或减去每个属性(无循环)。

数组中是否有可能像reduce函数一样: 如下所示:

var squares = arr.concat(arr2).reduce((t,n)=>t+n);

谢谢

最佳答案

没有这样的内置函数可以自动完成类似的事情,但是编写自己的代码来完成您想要的事情很简单:

var obj1 = {"a":1,"b":1,'c':1};
var obj2 = {"a":2,"b":2,'c':2};
var obj3 = {"a":3,"b":3,'c':3};
const combined = [obj1, obj2, obj3].reduce((a, obj) => {
  Object.entries(obj).forEach(([key, val]) => {
    a[key] = (a[key] || 0) + val;
  });
  return a;
});
console.log(combined);

关于javascript - 如何将两个或多个 JSON 对象求和为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53517874/

相关文章:

javascript - 记录对象显示所有属性,但单独记录属性显示 'undefined'

javascript - 如何使用 javascript 验证两个下拉框焦点

javascript - 如何删除 $(document).on 点击​​事件?

javascript - Three.js - 选择对象,获取对象 Material

javascript - jQuery 从按钮 onclick 跳转或滚动到页面上的某个位置、div 或目标

jquery文件上传插件模板引擎?

java - 为什么在 Java 中浮点对象不等于整型对象?

java - Java中的类和对象问题

javascript - "back"与 fancybox3 的行为

javascript - addEventListener 仅触发第一个事件