首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合并深度对象并覆盖

合并深度对象并覆盖
EN

Stack Overflow用户
提问于 2016-01-20 19:45:38
回答 1查看 1.7K关注 0票数 2

我希望合并两个对象,并用第二个对象内容覆盖第一个对象内容。

我试过undescore_.extend(),但结果不是我想要的。

例如

对象:

代码语言:javascript
复制
var a = {
    "firstName": "John",
    "lastName": "Doe",
    "address": {
        "zipCode": "75000",
        "city": "Paris"
    }
};

var b = {
    "firstName": "Peter",
    "address": {
        "zipCode": "99999"
    }
};

merge(a, b); /* fake function */

预期结果:

代码语言:javascript
复制
var a = {
    "firstName": "Peter",
    "lastName": "Doe",
    "address": {
        "zipCode": "99999",
        "city": "Paris"
    }
};

我也尝试过像合并这样的模块,但它不适合我。我怎么能做到呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-20 19:57:34

试着跟随

代码语言:javascript
复制
Object.deepExtend = function(destination, source) {
  for (var property in source) {
     if (typeof source[property] === "object" &&
       source[property] !== null ) {
       destination[property] = destination[property] || {};
       arguments.callee(destination[property], source[property]);
     } else {
       destination[property] = source[property];
     }
  }
};


var a = {
    "firstName": "John",
    "lastName": "Doe",
    "address": {
        "zipCode": "75000",
        "city": "Paris"
    }
};

var b = {
    "firstName": "Peter",
    "address": {
        "zipCode": "99999"
    }
};

Object.deepExtend(a,b);

console.dir(a);

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34909125

复制
相关文章

相似问题

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