Сравните два массива объектов; Если второй объект содержит тот же ключ/значение, что и первый, верните второй, если нет, добавьте ключ/значение из первого

#javascript #arrays #object-merging

Вопрос:

Рассмотрим следующее: у нас есть два массива, каждый из которых содержит объект.

 let users: [  {  "id": "some#"  "name": "some name",  "data": "somedata"  } ],   let products: [  {  "product": "some#"  "name": "abc",  }, ]  

По сути, сравните оба объекта, если второй объект обладает тем же свойством, что и первый, сохраните вторую опору и значение, если нет, добавьте опору/значение из первого.

Таким образом, результат будет :

 {  "id": "some#",  "name": "abc",  "data": "somedata" }  

Ответ №1:

Попробуй это:

 if (!(users[0].name === products[0].name)) { product[0].data = users[0].data }  

Ответ №2:

Надеюсь, это то, что вы ищете :

 let users= [  {  "id": "some#",  "name": "some name",  "data": "somedata",  } ],   let products = [  {  "product": "some#",  "name": "abc",  }, ]  for (key in users[0]) {  if(products[0][key]){  users[0][key] = products[0][key];  }else{  continue;  } } console.log(users)