我有两个对象:
{'1': {'a': 1, 'b': 2, 'c': 3}}, {'1': {'d': 4, 'e': 5, 'f': 6}, '2': {'g': 7}}.
本机javascript中是否有一个函数(项目中也使用了下划线),我可以在其中放入两个对象并将其取出来?
{'1': {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}, '2': {'g': 7}}
[更新]您可以使用以下内容进行合并而不会影响原始对象:
var isObject = function(o) { return Object.prototype.toString.call(o) == '[object Object]'; };
var isArray = function(o) { return Object.prototype.toString.call(o) == '[object Array]'; };
function extend(a, b) {
for (var prop in b) {
if (isObject(b[prop])) {
extend(a[prop]||(a[prop] = {}), b[prop]);
}
else if (isArray(b[prop])) {
a[prop] = (a[prop]||[]).concat(b[prop]);
}
else {
a[prop] = b[prop];
}
}
return a;
}
function merge(dest, source) {
var obj = extend({}, dest),
sources = arguments.length > 2 ? [].slice.call(arguments,1) : [source];
sources.forEach(function(source) {
extend(obj, source);
});
return obj;
}
请参阅工作中的JSBin。
此更新的版本应允许您合并多个对象,并返回合并对象的副本,而将原始对象保留在原位。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句