我有两个对象数组:

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);
    }
})

10-06 13:19