当输入是 属性 值 Javascript 的数组时,从数组对象中移除具有相同 属性 值的对象

Remove Object have same property value from Array object when input is Array of property value Javascript

我有数组对象:

[
    {
        id: 1,
        name: ABC,
        age: 10
    },
    {
        id: 2,
        name: ABCXYZ,
        age: 20
    },
    {
        id: 3,
        name: ZYXCNA,
        age: 30
    },
    ...
    ...
    ....more
]

并且数组是上述数组对象中 id 的值: [ 1, 2]

然后我想要一个数组对象在上面的数组对象中没有 id 的值。 例如:我将在此处收到的数组对象是

[
    {
        id: 3,
        name: ZYXCNA,
        age: 30
    },
    {
        id: 4,
        name: ABCDX,
        age: 30
    }
] 

我在这里使用了 3 个 for 循环来解决这个问题,但我认为这可以有更聪明的方法。 就像在这里使用 reduce 一样,但我仍然没有解决。谁能帮我?非常感谢。

您可以使用 Array.filter & Array.includes 来做到这一点。

const source = [
    {
        id: 1,
        name: 'ABC',
        age: 10
    },
    {
        id: 2,
        name: 'ABCXYZ',
        age: 20
    },
    {
        id: 3,
        name: 'ZYXCNA',
        age: 30
    },
    {
        id: 4,
        name: 'ABCDX',
        age: 30
    }
];

const input = [ 1, 2 ];

const output = source.filter(({ id }) => !input.includes(id));
console.log(output);

你根本不需要任何显式循环,你只是在过滤

var input = [
    {
        id: 1,
        name: "ABC",
        age: 10
    },
    {
        id: 2,
        name: "ABCXYZ",
        age: 20
    },
    {
        id: 3,
        name: "ZYXCNA",
        age: 30
    },
];

var ids = [1,2];

var result = input.filter(x => ! ids.includes(x.id));
console.log(result);