Как удалить элементы из массива, используя элементы из другого массива?

У меня есть два массива

let unnecessaryNames: Array<string> = ["Alex", "Dmitry", "Rustam"];
let names: Array<number, string> = [1, "Maxim", 2, "Oleg", 3, "Alex", 4, "Dmitry", 5, "Rustam", 6, "Roman"];

мне нужно удалить из массива names все элементы, совпадающие с элементами массива unnecessaryNames, чтобы на выходе в массиве names остались [1, "Maxim", 2, "Oleg", 6, "Roman"]


Ответы (1 шт):

Автор решения: vsemozhebuty

Можно так:

let unnecessaryNames = ["Alex", "Dmitry", "Rustam"];
let names = [1, "Maxim", 2, "Oleg", 3, "Alex", 4, "Dmitry", 5, "Rustam", 6, "Roman"];

for (let i = 1; i < names.length; i += 2) {
  if (unnecessaryNames.includes(names[i])) {
    names.splice(i-1, 2);
    i -= 2;
  }
}

console.log(names);

→ Ссылка