JavaScript метод slice()
JavaScript ArrayОпределение и применение
JavaScript метод slice() позволяет возвратить новый массив, который содержит копии элементов, вырезанных из исходного массива.
Обращаю Ваше внимание, что метод slice() не изменяет исходный массив, а возвращает новую поверхностную копию, содержащую копии элементов, вырезанных из исходного массива. Он копирует ссылки на объекты в новый массив, при этом оригинал и новый массив будут ссылаться на один и тот же объект. Если объект по ссылке будет изменён, то изменения будут видны как у оригинала, так и у его копии.
Изменения строки, или числа в одном массиве никак не затрагивает другой. Если к оригиналу, или его копии будет добавлен новый элемент, то это никак не повлияет на другой массив.
Поддержка браузерами
Метод | Chrome | Firefox | Opera | Safari | IExplorer | 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