【问题标题】:How merge two objects by property? [duplicate]如何按属性合并两个对象? [复制]
【发布时间】:2020-05-28 09:20:38
【问题描述】:

我想在结果对象中添加属性contract_num。我该怎么做?

var clients = [
  {
    "id_client": "164905",
    "id_contract": "123"
  },
  {
    "id_client": "164906",
    "id_contract": "128"
  },
  {
    "id_client": "164907",
    "id_contract": "123"
  }
]

var contracts = [
  {"id_contract": "123", "contract_num": "879469"},
  {"id_contract": "128", "contract_num": "333469"}
]

结果应该是这样的

      {
        "id_client": "164905",
        "id_contract": "123"
        "contract_num": "879469"
      },
      {
        "id_client": "164906",
        "id_contract": "128",
        "contract_num": "333469"
      },
      {
        "id_client": "164907",
        "id_contract": "123",
        "contract_num": "879469"
      }

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您可以使用map

    var clients = [ { "id_client": "164905", "id_contract": "123" }, { "id_client": "164906", "id_contract": "128" }, { "id_client": "164907", "id_contract": "123" } ];
    
    var contracts = [ {"id_contract": "123", "contract_num": "879469"},{"id_contract": "128", "contract_num": "333469"}];
    
    var result = clients.map(val=>{
        index = contracts.find(k=>k.id_contract == val.id_contract);
        if(index) val.contract_num = index.contract_num
        return val;
    });
    
    console.log(result);

    【讨论】:

      猜你喜欢
      • 2011-03-19
      • 1970-01-01
      • 2022-11-15
      • 2016-12-01
      • 1970-01-01
      • 2019-11-18
      • 2020-07-05
      • 1970-01-01
      • 2021-07-13
      相关资源
      最近更新 更多