Angular5 сравнивает 2 массива (JSON) объектов и склеивает, когда найдено совпадение - PullRequest
0 голосов
/ 30 мая 2018

Если у меня есть 2 массива с (JSON) объектами, и я хочу сравнить их и объединить объект при совпадении, каков наилучший способ сделать это.

Пример:

Массив 1:

[{test: 1, test2: 2}, {test: 3, test2: 5}, {test: 6, test2: 8}]

Массив 2:

[{test: 6, test2: 8}, {test: 1, test2: 2}]

Теперь мы видим, что индекс 0 массива 1 и индекс 1 массива 2 совпадают.Теперь я хочу соединить объект из массива 1.

Есть ли хороший / умный способ добиться этого?

thx!

Ответы [ 2 ]

0 голосов
/ 30 мая 2018
    using filter you can remove duplicate by compare tow array object in loop and filter return result array 

    this.array2.forEach((item2) => {

     this.array1 = this.array1.filter((item1) => {
       //use JSON.stringify() to compare tow objects
       return JSON.stringify(item1) !== JSON.stringify(item2);
     })

    })
    console.log(this.array1);
0 голосов
/ 30 мая 2018

попробуйте, используя фильтр, фильтр зациклится на массиве 1 и вернет массив элементов, соответствующих условию (элемент, которого нет в массиве 2)

array2.foreach((element) => {
 array1 = array1.filter((element1) => {
   return element1 !== element;
 })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...