与lodash的2个阵列的联合

时间:2018-01-14 07:37:24

标签: javascript arrays union lodash

我正在使用lodash 3.10,我需要联合2个阵列。

[
  {
    "name": "DESIGEMPRESA",
    "value": "CMIP"
  },
  {
    "name": "DSP_DIRECAO",
    "value": "CMIP@400@1900-01-01"
  },
  {
    "name": "MES",
    "value": "12"
  }
]

和这个非常相似的那个:

    [
      {
        "name": "DESIGEMPRESA",
        "value": "CMIP"
      },
      {
       name: "CUSTO", 
       value: ">100"
      }
    ]

我知道这是一个简单的方法,因为合并在这个cas中不起作用。 Apreciate your help谢谢。

1 个答案:

答案 0 :(得分:1)

var array1 = [
  {
    "name": "DESIGEMPRESA",
    "value": "CMIP"
  },
  {
    "name": "DSP_DIRECAO",
    "value": "CMIP@400@1900-01-01"
  },
  {
    "name": "MES",
    "value": "12"
  }
];
var array2 =  [
      {
        "name": "DESIGEMPRESA",
        "value": "CMIP"
      },
      {
       "name": "CUSTO", 
       "value": ">100"
      }
    ];
    
 var merged = _(array1)
  .concat(array2)
  .groupBy("name")
  .map(_.spread(_.merge))
  .value();

console.log(merged);
 
   <script src="https://cdn.jsdelivr.net/lodash/4.13.1/lodash.min.js"></script>