合并两个对象

时间:2016-08-18 11:25:30

标签: javascript javascript-objects

我有2个两级JavaScript结构,我需要合并。什么是最简单的方法?

var object1={
  "section1": {
    "prop1": 0,
    "prop2": 0
  },
  "section2": {
    "something": 0,
    "other": 0
  }
}

var object2={
  "section1": {
    "prop1": 1
  }
}

object2包含用户在UI中所做的更改,我需要获取合并对象,显示所有数据,只有object2中存在的对象2中存在的那些属性。

2 个答案:

答案 0 :(得分:1)

您可以使用Object.keys()reduce()执行此操作,如果在{object1} Object.assign()找到密钥,则更新每个对象。

var object1={
  "section1": {
    "prop1": 0,
    "prop2": 0
  },
  "section2": {
    "something": 0,
    "other": 0
  }
}

var object2={
  "section1": {
    "prop1": 5
  }
}

var result = Object.keys(object1).reduce(function(r, k) {
  if(object2[k]) {
    r[k] = Object.assign({}, object1[k], object2[k]);
  } else {
    r[k] = object1[k];
  }
  return r;
}, {});

console.log(result);

答案 1 :(得分:0)

var mergedObj = Object.assign({}, object1, object2)如果我正确理解你的问题。