Неизменяемый массив: как удалить элементы, не изменяя исходный массив

Чтобы удалить элемент из массива неизменяемым способом, обычно необходимо создать новый массив без элемента, который вы хотите удалить. Вот несколько методов, которые вы можете использовать:

  1. Метод фильтра. Вы можете использовать метод filter()для создания нового массива, исключающего элемент, который вы хотите удалить. Этот метод принимает функцию обратного вызова и возвращает новый массив со всеми элементами, которые соответствуют условию, указанному в обратном вызове.

    const newArray = originalArray.filter(element => element !== elementToRemove);
  2. Метод Slice: метод slice()позволяет извлечь часть массива в новый массив. Вы можете использовать его для извлечения элементов до и после элемента, который хотите удалить, фактически исключая его из нового массива.

    const indexToRemove = originalArray.indexOf(elementToRemove);
    const newArray = [...originalArray.slice(0, indexToRemove), ...originalArray.slice(indexToRemove + 1)];
  3. Оператор распространения: вы можете использовать оператор распространения (...), чтобы создать новый массив и исключить элемент, который хотите удалить.

    const newArray = [...originalArray.filter(element => element !== elementToRemove)];
  4. Метод Map: Хотя метод map()в основном используется для преобразования элементов массива, вы также можете использовать его для исключения элемента, который хотите удалить. Однако этот подход менее эффективен, чем предыдущие методы.

    const newArray = originalArray.map(element => element === elementToRemove ? undefined : element).filter(Boolean);

Эти методы позволяют удалять элементы из массива неизменяемым способом, создавая новые массивы, которые не изменяют исходный.