将不相同的对象添加到数组中

时间:2018-09-03 13:54:22

标签: javascript arrays object

我想遍历两个数组,比较它们并创建一个新数组,该数组将包含两个数组中的对象,但忽略相同的对象: 下面的代码说明了最终结果的外观。 谢谢。

Array1 = [
    {"column": "brand_name1"},
    {"column": "brand_name2"}
    ]

    Array2 = [
    {"column": "brand_name1"},
    {"column": "brand_name3"}
    ]

    And result should be something like

    Array3 = [
    {"column": "brand_name1"},
    {"column": "brand_name2"},
    {"column": "brand_name3"}
    ]

1 个答案:

答案 0 :(得分:2)

这里是一种O(n)解决方案,用于从两个对象数组中获取唯一数组。

var Array1 = [{
    "column": "brand_name1"
  },
  {
    "column": "brand_name2"
  }
]

var Array2 = [{
    "column": "brand_name1"
  },
  {
    "column": "brand_name3"
  }
]

var newArray = [...Array1, ...Array2];
var tempObj = {};
newArray.forEach((item) => {
  var value = Object.values(item)[0];
  if(!tempObj[value]){
    tempObj[value] = item;
  }
});
var Array3 = Object.values(tempObj);
console.log(Array3);