【问题标题】:Lodash compare/merge object to arrayLodash 比较/合并对象到数组
【发布时间】:2017-12-13 13:58:57
【问题描述】:

我需要使用 Lodash 比较/合并 2 个具有不同结构的对象。

   data= [
      {
        "name": "EMPRESA",
        "value": ""
      },
      {
        "name": "DESIGEMPRESA",
        "value": "CMIP"
      },
      {
        "name": "UTILIZADOR",
        "value": ""
      },
      {
        "name": "CD_INDICADOR",
        "value": ""
      },
      {
        "name": "DT_INI_INDICADOR",
        "value": ""
      },
      {
        "name": "DT_INI",
        "value": "2017-12-13"
      },
      .....
    ]

dbcolsData={
  "EMPRESA": "",
  "UTILIZADOR": "paulo.figueiredo",
  "CD_INDICADOR": "",
  "DT_INI_INDICADOR": "",
  "DT_INI": "",
  "DT_FIM": ""
}

问题是如何用 dbcolsData 的值填充 data 的值? 假设将dbColsData 的值放入data 提前致谢

【问题讨论】:

    标签: javascript arrays object lodash


    【解决方案1】:

    试试这样的:

    _.forEach(data, function(object){
       object.value = dbcolsData[object.name];
    })
    

    【讨论】:

      【解决方案2】:

      使用Array#map(或lodash的_.map())迭代data,并从dbcolsData获取结果:

      var data = [{"name":"EMPRESA","value":""},{"name":"DESIGEMPRESA","value":"CMIP"},{"name":"UTILIZADOR","value":""},{"name":"CD_INDICADOR","value":""},{"name":"DT_INI_INDICADOR","value":""},{"name":"DT_INI","value":"2017-12-13"}];
      
      var dbcolsData = {"EMPRESA":"","UTILIZADOR":"paulo.figueiredo","CD_INDICADOR":"","DT_INI_INDICADOR":"","DT_INI":"","DT_FIM":""};
      
      var result = data.map(function(o) {
        return Object.assign({ data: dbcolsData[o.name] }, o);
      });
      
      console.log(result);

      【讨论】:

        【解决方案3】:

        data 简化为dbcolsData 结构:

        var myData = data.reduce((o, nvO) => Object.defineProperty(o, nvO.name, {value: nvO.value}), {})
        

        ->

        现在您可以使用 lodash 比较函数,例如 _.isEqual

        _.isEqual(myData, dbcolsData)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-05-07
          • 1970-01-01
          • 2016-06-12
          • 2017-01-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多