Этот вопрос закрыт для ответов, так как повторяет вопрос Как найти разницу двух массивов объектов?
@nak-alexey

Как определить, есть ли различия в массивах объектов?

Имеются массивы объектов, например:

let array1 = [{name: "Игорь"}, {name: "Владимир"}, {name: "Сергей"}],
    array2 = [{name: "Игорь"}, {name: "Владимир"}, {name: "Валентин"}, {name: "Светлана"}];

Как определить, есть ли различия в объектах?
  • Вопрос задан
  • 176 просмотров
Ответы на вопрос 2
erge
@erge
Примус починяю
Вариант @pterodaktil
let merged = [...array1, ...array2].map(i => i.name);

if (new Set(merged).size === merged.length/2) {
  // равны
} else {
  // не равны
}


Так же если объекты более сложно-структурированные, но имеют строгий порядок в структуре, то можно так попробовать
if (JSON.stringify(obj1) === JSON.stringify(obj2)) {
  // равны
} else {
  // не равны
}
Ответ написан
@SkibaAnton
Frontend-Developer
Тут важно понимать, какие именно различия вас интересуют? Можно написать целую функцию с кучей проверок на длины массивов, структуру объектов, на порядок объектов, так что не ясно что именно вы хотите получить. Если просто равенство, то самый простой способ перевести их в строки с помощью JSON.stringify
function isEqual(arr1, arr2) {
	return JSON.stringify(arr1) === JSON.stringify(arr2);
}

Но этот метод делает разные неявные приколы с вложенными объектами и функциями в объектах
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы