'How to splice multiple values from array of objects which matches given nested array

I am trying to remove the array of objects if the given array of objects matches with the index but it is only removing the last index value.

How we can remove multiple values?

let idArr = [[{ index: 2 }], [{ index: 3 }]];

let obj = [
  {
    id: 1,
    name: 'abc',
  },
  {
    id: 2,
    name: 'abc',
  },
  {
    id: 3,
    name: 'abc',
  },
  {
    id: 4,
    name: 'abc',
  },
];
let data = obj.filter((item, i) =>
  idArr.reduce((val) => val.find(({ index }) => i === index))
);

//expected output

[
  {
    id: 1,
    name: 'abc',
  },
  {
    id: 2,
    name: 'abc',
  },
];


Solution 1:[1]

I think that following code achieves what you're expecting

let data = obj.filter((obj, idx) => !idArr.find(id => id[0].index === idx));

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 LIIT