将两个JSON部分合并为一个JSON对象

8
我希望将topData和bottomData合并成completeData。
var topData = {
    "auth": "1vmPoG22V3qqf43mPeMc",
    "property" : "ATL-D406",  
    "status" : 1,
    "user" : "test001@aaa.com",
    "name" : "Abraham Denson"
}

var bottomData = {
    "agent" : "pusher@agent.com",
    "agency" : "Thai Tims Agency",
    "agentCommission" : 1000,
    "arrival" : "arrive 12pm at condo",
    "departure" : "leaving room at 6pm",
}

var completeData = topData.concat(bottomData)

由于这些不是数组,所以concat在这里无法使用。

能否在不使用foreach循环的情况下完成此操作?

3个回答

7
你可以使用 Object.assign() 来合并你的对象。
var newObj = Object.assign({}, topData, bottomData)

来自MDN

Object.assign()方法用于将一个或多个源对象的所有可枚举自有属性的值复制到目标对象中,它会返回目标对象。


var topData = {
    "auth": "1vmPoG22V3qqf43mPeMc",
    "property" : "ATL-D406",  
    "status" : 1,
    "user" : "test001@aaa.com",
    "name" : "Abraham Denson"
}

var bottomData = {
    "agent" : "pusher@agent.com",
    "agency" : "Thai Tims Agency",
    "agentCommission" : 1000,
    "arrival" : "arrive 12pm at condo",
    "departure" : "leaving room at 6pm",
}

var completeData = Object.assign({}, topData, bottomData);

console.log(completeData);


搞定了,谢谢。 - torbenrudgaard

3

You can use Object.assign.

var topData = {
  "auth": "1vmPoG22V3qqf43mPeMc",
  "property": "ATL-D406",
  "status": 1,
  "user": "test001@aaa.com",
  "name": "Abraham Denson"
}

var bottomData = {
  "agent": "pusher@agent.com",
  "agency": "Thai Tims Agency",
  "agentCommission": 1000,
  "arrival": "arrive 12pm at condo",
  "departure": "leaving room at 6pm",
}

var completeData = Object.assign(topData, bottomData);
console.log(completeData)

It return the target object which mean properties from bottomData will be added to topData


这将改变topData,这可能不是OP想要的。 - user663031
是的,搞定了 :) - torbenrudgaard

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接