bootd
@bootd
Гугли и ты откроешь врата знаний!

Есть способ лучше записать функцию удаления объекта из массива по ключу этого объекта?

Написал вот так, вроде ничего сложного. Есть в этом коде что-то не верное? Не знаю почему, но меня мучает чувство, что я как-то не так это написал!
let arr = [{id: 7}, {id: 12}, {id: 26}];
let deleteID = 7; // Это значение ключа, которое лежит в одном из объектов

// И я хочу удалить этот объект из массива
arr.filter((item, index) => {
  if(item.id === deleteID ){
    arr.splice(index, 1)
  }
});
  • Вопрос задан
  • 368 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
arr = arr.filter(n => n.id !== ID);

Или, если не хотите создавать новый массив:

arr.splice(arr.findIndex(n => n.id === ID), 1);

Это, конечно, если вы уверены, что элемент с таким id действительно есть. В противном случае перед удалением надо проверить, чем является индекс:

const index = arr.findIndex(n => n.id === ID);
if (index !== -1) {
  arr.splice(index, 1);
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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