Создайте объект из arr1
, который будет хранить все значения prop: из массива, так как все реквизиты в arr2
должны будут пройти через весь реквизит:
const aggregatedArr1 = arr1.reduce((acc, o) => (Object.keys(o).forEach(k => acc[k] = o[k]), acc), {});
Для каждого реквизита в arr2
сравните его с aggregatedArr1
реквизитами и, если совпадение, выведите значение реквизита:
arr2.forEach(obj => Object.entries(obj).forEach(([key, val]) => {
if (aggregatedArr1.hasOwnProperty(key) && aggregatedArr1[key] !== val) {
console.log(val);
}
}))
function main() {
const aggregatedArr1 = arr1.reduce((acc, o) => (Object.keys(o).forEach(k => acc[k] = o[k]), acc), {});
arr2.forEach(obj => Object.entries(obj).forEach(([key, val]) => {
if (aggregatedArr1.hasOwnProperty(key) && aggregatedArr1[key] !== val) {
console.log(val);
}
}))
}
var arr1 = [{
x: 'testx',
y: 'testy',
z: 'textz'
},
{
a: 'testa',
b: 'testb',
c: 'textc'
}
]
var arr2 = [{
x: 'testx'
},
{
a: 'testa',
b: 'notb'
}
]
main();