首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何动态合并两个JavaScript对象的属性?

如何动态合并两个JavaScript对象的属性?
EN

Stack Overflow用户
提问于 2008-10-05 08:30:55
回答 41查看 1.6M关注 0票数 2.9K

我需要能够在运行时合并两个(非常简单的) JavaScript对象。例如,我想:

代码语言:javascript
复制
var obj1 = { food: 'pizza', car: 'ford' }
var obj2 = { animal: 'dog' }

obj1.merge(obj2);

//obj1 now has three properties: food, car, and animal

有没有人有这样的脚本或者知道一种内置的方法呢?我不需要递归,也不需要合并函数,只需要平面对象上的方法。

EN

回答 41

Stack Overflow用户

发布于 2012-02-19 19:44:53

请注意,underscore.jsextend-method在一行代码中做到了这一点:

代码语言:javascript
复制
_.extend({name : 'moe'}, {age : 50});
=> {name : 'moe', age : 50}
票数 178
EN

Stack Overflow用户

发布于 2014-01-28 05:00:58

与jQuery extend()类似,在AngularJS中也有相同的函数

代码语言:javascript
复制
// Merge the 'options' object into the 'settings' object
var settings = {validate: false, limit: 5, name: "foo"};
var options  = {validate: true, name: "bar"};
angular.extend(settings, options);
票数 83
EN

Stack Overflow用户

发布于 2011-12-24 23:09:56

今天我需要合并对象,这个问题(和答案)对我帮助很大。我尝试了一些答案,但没有一个符合我的需求,所以我组合了一些答案,自己添加了一些东西,并提出了一个新的合并函数。这就是它:

代码语言:javascript
复制
var merge = function() {
    var obj = {},
        i = 0,
        il = arguments.length,
        key;
    for (; i < il; i++) {
        for (key in arguments[i]) {
            if (arguments[i].hasOwnProperty(key)) {
                obj[key] = arguments[i][key];
            }
        }
    }
    return obj;
};

一些示例用法:

代码语言:javascript
复制
var t1 = {
    key1: 1,
    key2: "test",
    key3: [5, 2, 76, 21]
};
var t2 = {
    key1: {
        ik1: "hello",
        ik2: "world",
        ik3: 3
    }
};
var t3 = {
    key2: 3,
    key3: {
        t1: 1,
        t2: 2,
        t3: {
            a1: 1,
            a2: 3,
            a4: [21, 3, 42, "asd"]
        }
    }
};

console.log(merge(t1, t2));
console.log(merge(t1, t3));
console.log(merge(t2, t3));
console.log(merge(t1, t2, t3));
console.log(merge({}, t1, { key1: 1 }));
票数 66
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/171251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档