dollar
@dollar
Делай добро и бросай его в воду.

Очистка согласно массиву индексов?

var arr = [5,7,3,9,4,3,3,2,7,8];
var indexes = [3,7,4,1]; // удалить
// ......
[5,3,3,3,7,8]

Возможно ли в одну строку?
  • Вопрос задан
  • 71 просмотр
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
Удаляем из существующего массива:

arr.reduceRight((_, n, i, a) => indexes.includes(i) && a.splice(i, 1), null);
// или
[...indexes].sort((a, b) => b - a).forEach(i => arr.splice(i, 1));
// или
arr.splice(0, arr.length, ...arr.filter((n, i) => indexes.indexOf(i) === -1));

Собираем новый:

const newArr = arr.filter(((indexes, n, i) => !indexes.has(i)).bind(null, new Set(indexes)));
Ответ написан
Комментировать
hzzzzl
@hzzzzl
arr.filter((el, index) => !indexes.includes(index))
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы