Данный метод не изменяет исходный массив, а просто возвращает его часть.
Пример: Элементы из середины
var arr = [ 1, 2, 3, 4, 5 ]
arr.slice(2) // => [3, 4, 5]
arr.slice(1, 4) // => [2, 3, 4]
arr.slice(2, 3) // => [3]
Пример: Отсчет с конца
arr = [1, 2, 3, 4, 5]
arr.slice(-2) // => [4, 5]
arr.slice(arr.length - 2) // то же самое
arr.slice(-3, -1) // [3, 4]
arr.slice(arr.length-3, arr.length-1) // то же самое
А как будет с многомерными массивами?
Для многомерных массивов нужно использовать схожую функцию - splice()
Можете привести пример, как использовать splice() для многомерных массивов?
Многомерность не учитывается.
start тоже не обязательный параметр. slice без параметров копирует массив
Почему нет ни слова о том, что этот метод практически так же работает и для строк?! Что он вообще там есть
Наверное потому, что у строк — другой метод с таким же названием. А этот метод для массивов.
"Данный метод не изменяет исходный массив" - изменяет!
попробуйте:
var arr = [1,2,3];
arr.splice(1,1)
console.log(arr);
Извините, перепутал методы. Всего одна буква а какая разница в поведении.
slice хороший способ клонировать массив,
Например
следующий код
выведет
но вот так:
уже
Не надо путать копирование по ссылке и копирование по значению