我尝试比较并过滤出两个不同的对象数组,我需要检查两个对象数组中的所有元素,并需要过滤出具有相同ID的项,这意味着我只需要从一个数组中过滤出相同的项,另一个数组应该具有该项。(id),但我只需要从第二个数组中过滤掉。
// Example :
// Lets's say I am having following array of objects:
const a = [
{ id: '1234', description: 'PrdOne', version: '3', categories: '--' },
{ id: '12345', description: 'PrdTwo', version: '2', categories: '--' },
{ id: '123456', description: 'PrdThree', version: '2', categories: '--' },
];
const b = [
{ id: '1234', description: 'PrdOne', version: '3', categories: '--' },
{ id: '12345', description: 'PrdTwo', version: '2', categories: '--' },
];
// I am trying to get something like below:
const res = [
{ id: '1234', description: 'PrdOne', version: '3', categories: '--' },
{ id: '12345', description: 'PrdTwo', version: '2', categories: '--' },
{ id: '123456', description: 'PrdThree', version: '2', categories: '--' },
];
基本上我需要检查每一个元素,我需要忽略数组b中相同的元素,我只需要得到数组a中的元素,我也不想从const b中删除那个元素,我需要检查两个数组,如果匹配,我只需要使用A,同时B中的元素不应该被删除。
我尝试下面的解决方案给我从两个列表相同的项目。任何人可以帮助我如何才能实现这一点吗?提前感谢'
const a = [
{ id: '1234', description: 'PrdOne', version: '3', categories: '--' },
{ id: '12345', description: 'PrdTwo', version: '2', categories: '--' },
{ id: '123456', description: 'PrdThree', version: '2', categories: '--' },
];
const b = [
{ id: '1234', description: 'PrdOne', version: '3', categories: '--' },
{ id: '12345', description: 'PrdTwo', version: '2', categories: '--' },
];
let result = a.filter(o => !b.some(v => v.id === o.id));
console.log(result);
4条答案
按热度按时间svujldwt1#
你可以试试这个:
643ylb082#
您可以在
Set
上进行闭包,并过滤所有项的数组。b1uwtaje3#
试试这个
lkaoscv74#