合并对象(关联数组)

2022-08-30 03:06:02

在JavaScript中合并两个关联数组的最佳/标准方法是什么?每个人都只是通过滚动自己的循环来做到这一点吗?for


答案 1

使用jquery,您可以调用$.extend

var obj1 = {a: 1, b: 2};
var obj2 = {a: 4, c: 110};

var obj3 = $.extend(obj1, obj2); 

obj1 == obj3 == {a: 4, b: 2, c: 110} // Pseudo JS

(附属数组是 js 中的对象)

看这里: http://api.jquery.com/jQuery.extend/


编辑:就像rymo建议的那样,最好这样做:

obj3 = $.extend({}, obj1, obj2); 
obj3 == {a: 4, b: 2, c: 110}

在这里,obj1(和obj2)保持不变。


编辑2:在2018年,做到这一点的方法是通过:Object.assign

var obj3 = Object.assign({}, obj1, obj2); 
obj3 === {a: 4, b: 2, c: 110} // Pseudo JS

如果使用 ES6,则可以使用“展开”运算符实现此目的:

const obj3 = { ...obj1, ...obj2 };

答案 2

现在在2016年,我会说最好/标准的方式是Object.assign()
纯Javascript。不需要 jQuery。

obj1 = {a: 1, b: 2};
obj2 = {a: 4, c: 110};
obj3 = Object.assign({},obj1, obj2);  // Object {a: 4, b: 2, c: 110}

更多信息,示例和polyfill在这里:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign