Javascript 如何将两个或多个JSON对象相加为一个
嗨,我有以下JSON对象Javascript 如何将两个或多个JSON对象相加为一个,javascript,jquery,object,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 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 combled=[obj1,obj2,obj3]。reduce((a,obj)=>{
Object.entries(obj.forEach)([key,val])=>{
a[键]=(a[键]| 0)+val;
});
返回a;
});
控制台日志(组合)代码>您只需循环一个对象
属性并构造结果:
let res = {};
for (p in obj1) {
res[p] = obj1[p] + (obj2[p] || 0) + (obj3[p] || 0);
}
演示:
var obj1={“a”:1,“b”:1,“c”:1};
var obj2={“a”:2,“b”:2,“c”:2};
var obj3={“a”:3,“b”:3,“c”:3};
设res={};
用于(obj1中的p){
res[p]=obj1[p]+(obj2[p]||0)+(obj3[p]|0);
}
控制台日志(res)代码>,'c'=1}
是无效语法…无效语法!这只是一个json对象的键值对的例子,如果我有对象,它是动态的?我的意思是可能有三个或更多的物体dynamically@ghanshyam.mirani你说的动态是什么意思?你不能仅仅猜测代码中的名称,如果有许多动态对象,你需要将它们存储在数组中。有一个checklistdropdown,下拉列表中的每个选项都有一个JSON对象。因此,所选选项的对象获取减法之和请使用所有相关代码更新您的问题。