Array.toSpliced(): вставка и удаление в новой коллекции
Метод toSpliced строит новый массив с удалённым или добавленным фрагментом. Он позволяет описать изменение списка, не меняя исходный массив на месте.
Назначение
Метод toSpliced строит новый массив с удалённым или добавленным фрагментом. Он позволяет описать изменение списка, не меняя исходный массив на месте.
Как это работает
Первый аргумент задаёт начало операции, второй — количество удаляемых элементов, следующие — вставляемые значения. Результатом является вся обновлённая коллекция, а не список удалённых элементов, как у splice.
Пример
const steps=["разметка","черновик","публикация"];
const updated=steps.toSpliced(1,1,"проверка","резервная копия");
console.assert(updated.join("|")==="разметка|проверка|резервная копия|публикация");
console.assert(steps.join("|")==="разметка|черновик|публикация");
Что должно получиться
В новой последовательности вместо «черновик» появляются два этапа. Старый список сохраняет три элемента и исходное содержимое. Индексы относятся к состоянию массива до операции.
Граница применения и частая ошибка
Не путайте отсутствие deleteCount с явным нулём: toSpliced(start) удаляет остаток от start, а toSpliced(start,0,value) выполняет вставку без удаления. Как и другие операции копирования массива, метод сохраняет ссылки на вложенные объекты.
Самостоятельная проверка
Сделайте чистую вставку в начало, затем удаление последнего пункта. Каждый раз проверьте длину результата и неизменность исходной последовательности; проверьте поддержку метода в нужной среде.
Пример JavaScript проверяйте в собственном учебном файле или консоли своего проекта. Встроенная песочница справочника JavaScript не выполняет. Успешное выполнение в одной среде не гарантирует поддержку метода во всех браузерах.