JavaScript: slice и splice
управляем элементами массива в JavaScript
Всем известно про методы slice
и splice
глобального объекта Array
. Один из них - slice
возвращает копию части исходного массива, другой - splice
изменяет содержимое исходного массива удаляя и добавляя элементы.
let arr = [1, 2, 3, 4, 5];
let sliceArr = arr.slice(1, 2);
arr.splice(1, 2, ...sliceArr);
console.log(arr);
К какому результату приведет выполнение кода, приведенного выше?
Итак, как уже говорилось ранее, метод slice
вернет уменьшенную копию исходного массива arr
. Он принимает два параметра:
-
start
- индекс элемента, с которого начнется новый массив, -
end
- индекс элемента, на котором новый массив закончится, при этом сам элемент с указанным индексом в новый массив включен не будет.let arr = [1, 2, 3, 4, 5]; // [1, 2, 3, 4, 5] let sliceArr = arr.slice(1, 2); // [2]
Таким образом, новый массив будет содержать только один элемент.
Следует помнить, что метод slice
не изменяет исходный массив, в то время как splice
модифицирует именно исходный массив.
Следующим шагом мы применяем метод splice
, которому передаем три параметра:
arr.splice(1, 2, ...sliceArr);
Это означает, что:
- начиная с элемента с индексом 1,
- мы удаляем 2 элемента: то есть удаляем элементы со значениями 2 и 3, и получаем массив
[1, 4, 5]
-
после чего, начиная с элемента с индексом 1, вставляем деструктурированный
...sliceArr
массив, содержащий только одно значение - 2, получая итоговый массив[1, 2, 4, 5].
let arr = [1, 2, 3, 4, 5]; let sliceArr = arr.slice(1, 2); // 2 arr.splice(1, 2, ...sliceArr); // 1, 2, 4, 5 console.log(arr);
Итак, на экран консоли будет выведен массив, состоящий из четырех элементов [1, 2, 4, 5].
Спасибо за внимание.