Я мог бы упростить это здесь, но не очень просто получить пример данных по вашему вопросу, так что извините, если он не на 100% точно соответствует вашему:
const src = [{ id: 1, name: 'a' }, { id: 2, name: 'b' }, { id: 3, name: 'c' }, { id: 4, name: 'd' }]
const tgt1 = { name: 'tgt1', data: [{ id: 3, name: 'c' }, { id: 4, name: 'd' }]}
const tgt2 = { name: 'tgt2', data: [{ id: 1, name: 'a' }, { id: 4, name: 'd' }]}
const tgt3 = { name: 'tgt3', data: [{ id: 2, name: 'b' }, { id: 3, name: 'c' }]}
const tgt4 = { name: 'tgt4', data: [{ id: 1, name: 'a' }, { id: 3, name: 'c' }]}
const tgt5 = { name: 'tgt5', data: [{ id: 1, name: 'a' }, { id: 4, name: 'd' }]}
const summary = (arr, arrays) => {
arr.forEach(x => {
arrays.map(({name, data}) => {
x[name] = data.some(y => y.name == x.name)
return x
})
})
return arr
}
console.log(summary(src, [tgt1,tgt2,tgt3,tgt4,tgt5]))
Код выше вашего сравнивает массив data
(который содержит ваши элементы из вашего образца data
) со всеми 3 различными таблицами и дает похожий результат "таблица"как у вас в вашем посте.Вы можете дополнительно добавить фактические id
и name
и т. Д. К нему.