嗨,我有以下 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/