比较两个数组并添加新标志



我有两个结构相同的数组。

我必须比较它们,如果在第一个数组中找到第二个数组中的项目(通过 id(,我应该将标志isNew设置为true- 否则设置为false

const arr1 = [
{
id: 1,
text: 'Text 1'
},
{
id: 2,
text: 'Text 2'
},
{
id: 3,
text: 'Text 3'
}
];
const arr2 = [
{
id: 2,
text: 'Text 2'
}
];
const result = [
{
id: 1,
text: 'Text 1',
isNew: false
},
{
id: 2,
text: 'Text 2',
isNew: true
},
{
id: 3,
text: 'Text 3',
isNew: false
}
];

您可以通过组合mapfind轻松做到这一点:

result = arr1.map(el => {
if (arr2.find(el2 => el.id === el2.id) {
el.isNew = true;
}
return el;
}

这里有一种方法:

const arr1Ids = [];
arr1.forEach((obj)=>{
arr1Ids.push(obj.id);
});
arr2.forEach((obj)=>{
if ( arr1IdArr.includes(obj.id) ) {
result.forEach((rObj)=>{
if ( rObj.id === obj.id ) {
rObj.isNew = true;
}
})
}
})

虽然我赞成乔治马的回答,因为它更简洁

相关内容

  • 没有找到相关文章

最新更新