【问题标题】:Combine two json sections into one json object [duplicate]将两个json部分合并为一个json对象[重复]
【发布时间】:2017-12-13 02:48:03
【问题描述】:

我想将 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 循环的情况下做到这一点吗?

【问题讨论】:

    标签: javascript json


    【解决方案1】:

    您可以使用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);

    【讨论】:

    • 成功了,谢谢
    【解决方案2】:

    您可以使用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)
    它返回目标对象,这意味着来自bottomData 的属性将被添加到topData

    【讨论】:

    • 这将改变topData,这可能不是OP想要的。
    • 是的,做到了:)
    【解决方案3】:
    var completeData = {...topData, ...bottomData};
    

    这是object spread syntax

    【讨论】:

      猜你喜欢
      • 2018-05-24
      • 1970-01-01
      • 2016-02-25
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-14
      相关资源
      最近更新 更多