let array1 = [{name: "Игорь"}, {name: "Владимир"}, {name: "Сергей"}],
array2 = [{name: "Игорь"}, {name: "Владимир"}, {name: "Валентин"}, {name: "Светлана"}];
function diff(data1, data2, key = n => n) {
const getKey = key instanceof Function ? key : n => n[key];
const keys = new Set(Array.from(data2, getKey));
return Array.prototype.filter.call(data1, n => !keys.has(getKey(n)));
}
// ваш случай
diff(array1, array2, 'name')
// есть и другие варианты применения
diff([ 1, 2, 3, 4, 5 ], [ 1, 2, 3 ]) // [4, 5]
diff('abcde', 'ACE', n => n.toLowerCase()) // ['b', 'd']
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 {
// не равны
}
function isEqual(arr1, arr2) {
return JSON.stringify(arr1) === JSON.stringify(arr2);
}