Если вы когда-либо сталкивались с JavaScript, вероятно, слышали о методах slice
и splice
. Но что, если я скажу вам, что они имеют совершенно разные назначения и использование одного вместо другого может привести к непредсказуемым результатам. Вчера я минут 20 не мог понять, почему код правильный, а данные нет 🙂 Подвела авто-коррекция в VS Code.
Slice
Метод slice
используется создает новый массив путем копирования части существующего массива. Формат метода выглядит следующим образом:
array.slice(start, end)
Где start
- индекс элемента, с которого начинается копирование, а end
(необязательный) - индекс элемента, на котором копирование завершается. Если end
не указан, slice
копирует элементы до конца массива.
Splice
В то время как slice
создает новый массив, метод splice
изменяет существующий массив, удаляя, заменяя или добавляя элементы в него. Его формат:
array.splice(start, deleteCount, item1, item2, ...)
Где start
- индекс, с которого начинается изменение массива, deleteCount
- количество удаляемых элементов, а последующие аргументы (необязательные) - элементы, которые добавляются в массив.
Ключевые различия
Основное различие между slice
и splice
заключается в их поведении:
slice
создает новый массив, не изменяя оригинальный.splice
изменяет оригинальный массив, удаляя, заменяя или добавляя элементы.