Ваш первоначальный тест total.indexOf(e)
не ищет объект со значением свойства _id
, равным e
- он ищет, равен ли объект строке 'abc'
или 'def'
, что, конечно,никогда не соответствует действительности.
Вместо этого вы можете использовать reduce
:
const element = ['abc', 'def'];
const total = [
{ _id: 'foo', something: 'else' },
{ _id: 'abc' },
{ _id: 'bar' },
{ _id: 'def' }
];
const foundIndicies = total.reduce((a, { _id }, i) => {
if (element.includes(_id)) a.push(i);
return a;
}, []);
console.log(foundIndicies);