Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将两个或多个JSON对象相加为一个_Javascript_Jquery_Object - Fatal编程技术网

Javascript 如何将两个或多个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的函数: 如下图

嗨,我有以下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 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对象。因此,所选选项的对象获取减法之和请使用所有相关代码更新您的问题。