JavaScript: как удалить объект из массива по его идентификатору

JavaScript – универсальный язык программирования, предлагающий различные способы управления массивами. Одной из распространенных задач является удаление объекта из массива на основе его идентификатора. В этой статье блога мы рассмотрим несколько методов с использованием разговорного языка и предоставим примеры кода, которые помогут вам легко выполнить эту задачу. Итак, давайте углубимся и узнаем, как удалить объект из массива по его идентификатору в JavaScript!

Метод 1: использование функций findIndex() и splice()
Функция findIndex() помогает нам найти индекс объекта в массиве на основе его идентификатора. Получив индекс, мы можем использовать функцию splice() для удаления объекта из массива.

const removeObjById = (arr, id) => {
  const index = arr.findIndex(obj => obj.id === id);
  if (index !== -1) {
    arr.splice(index, 1);
  }
};

Метод 2: использование функции filter()
Функция filter() позволяет нам создать новый массив, исключающий объект с указанным идентификатором. Этот метод особенно полезен, если вы предпочитаете сохранить исходный массив нетронутым.

const removeObjById = (arr, id) => {
  return arr.filter(obj => obj.id !== id);
};

Метод 3: использование функции уменьшения().
Функция уменьшения() позволяет нам перебирать массив и накапливать новый массив без объекта, соответствующего идентификатору.

const removeObjById = (arr, id) => {
  return arr.reduce((acc, obj) => {
    if (obj.id !== id) {
      acc.push(obj);
    }
    return acc;
  }, []);
};

Метод 4: использование цикла forEach()
Цикл forEach() позволяет нам перебирать массив и удалять объект с предоставленным идентификатором с помощью функции splice().

const removeObjById = (arr, id) => {
  arr.forEach((obj, index) => {
    if (obj.id === id) {
      arr.splice(index, 1);
    }
  });
};

Метод 5: использование функций find() и среза()
Функция find() помогает нам найти объект в массиве на основе его идентификатора, а затем мы можем использовать функцию среза() для создания новый массив, исключающий найденный объект.

const removeObjById = (arr, id) => {
  const foundObj = arr.find(obj => obj.id === id);
  if (foundObj) {
    return arr.slice(0, arr.indexOf(foundObj)).concat(arr.slice(arr.indexOf(foundObj) + 1));
  }
  return arr;
};

В этой статье мы рассмотрели пять различных методов удаления объекта из массива в JavaScript на основе его идентификатора. Каждый подход имеет свои преимущества, поэтому выберите тот, который лучше всего соответствует вашим конкретным потребностям. Предпочитаете ли вы простоту findIndex() и splice(), неизменяемость filter() или гибкость сокращения(), JavaScript предоставит вам множество вариантов для легкого выполнения этой задачи.