JavaScript метод slice()

JavaScript Array

Определение и применение

JavaScript метод slice() позволяет возвратить новый массив, который содержит копии элементов, вырезанных из исходного массива.


Обращаю Ваше внимание, что метод slice() не изменяет исходный массив, а возвращает новую поверхностную копию, содержащую копии элементов, вырезанных из исходного массива. Он копирует ссылки на объекты в новый массив, при этом оригинал и новый массив будут ссылаться на один и тот же объект. Если объект по ссылке будет изменён, то изменения будут видны как у оригинала, так и у его копии.

Изменения строки, или числа в одном массиве никак не затрагивает другой. Если к оригиналу, или его копии будет добавлен новый элемент, то это никак не повлияет на другой массив.


Поддержка браузерами

МетодChrome
Chrome
Firefox
Firefox
Opera
Opera
Safari
Safari
Internet Explorer
IExplorer
Microsoft Edge
Edge
slice()ДаДаДаДаДаДа

JavaScript синтаксис:

array.slice( start, end )

Версия JavaScript

ECMAScript 3 (реализовано в JavaScript 1.2)

Значения параметров

ПараметрОписание
startЦелое число, которое указывает с какого индекса начинать выбор элементов (первый элемент имеет индекс 0). Допускается использование отрицательных значений, в этом случае индекс с которого будет произведен выбор элементов расчитывается по следующей формуле: length (длина массива) + start. Этот аргумент не является обязательным, если он опущен, то значение по умолчанию будет соответствовать 0.
endЦелое число, определяющее место завершения выделения элементов массива. Если этот параметр не указан, то будут выбраны все элементы от начальной позиции (start) и до конца массива. Допускается использование отрицательных значений, в этом случае индекс с которого будет произведен выбор элементов расчитывается по следующей формуле: length (длина массива) + end. Этот аргумент не является обязательным. Если end находится до start, в новый массив не копируется ни одного элемента.

Пример использования

var x = [1, 2, 3, "a", "b", "c"]; // инициализируем переменную, содержащую массив
var a, b, c, d, e; // инициализируем пустые переменные

a = x.slice(); // значение переменной [1,2,3,a,b,c]
b = x.slice(3, 4); // значение переменной ["a"]
c = x.slice(2, 5); // значение переменной [3, "a", "b"]
d = x.slice(-4, 5); // значение переменной [3, "a", "b"]
e = x.slice(-4, -1); // значение переменной [3, "a", "b"]

------------------------------------------------------

var a = "yes"; // инициализируем переменную, содержащую строку
var b = [a]; // инициализируем переменную, содержащую массив
var c = b.slice(); // значение переменной ["yes"]

------------------------------------------------------

var a = {first: "value1", second: "value2"}; // инициализируем переменную, содержащую объект
var b = [a, a.first, a.second]; // инициализируем переменную, содержащую массив
var c = b.slice(); // значение переменной [{first:"value1", second:"value2"}, "value1", "value2"]

a.first = "value3"; // изменяем значение свойства объекта
console.log(c);  // значение переменной [{first:"value3", second:"value2"}, "value1", "value2"]
JavaScript Array