我有两个对象数组:
const first = [{text: 'sometext1', applicable: true}, {text: 'sometext2', applicable: false}, {text: 'sometext3', applicable: true}];
const second = [{text: 'sometext1', applicable: true}, {text: 'sometext2', applicable: true}];
结果,我想得到这样的数组:
const result = [{text: 'sometext1', applicable: true}, {text: 'sometext2', applicable: true}, {text: 'sometext3', applicable: true}];
所以=>只需将第一个数组中所有不存在的项添加到第二个数组中,并通过'text'键过滤即可。
有可能通过减速器吗?还是任何更好的方法?
最佳答案
只需遍历第一个数组并检查每个项目是否存在于第二个数组中,如果不存在,则推入第二个数组。
first.forEach((item) => {
const index = second.findIndex((st) => st.text === item.text);
if(index < 0) {
second.push(item);
}
})