Array.slice() - повертає поверхневу копію частини масиву в новий об'єкт масиву.
arr.slice([ begin [, end ]]);
begin - Індекс (рахунок починається з нуля), за яким починати витяг. Якщо індекс негативний, begin вказує зміщення від кінця послідовності. Виклик slice (-2) витягне два останніх елемента послідовності. Якщо begin опущений, slice () починає працювати з індексу 0.
end - Індекс (рахунок починається з нуля), за яким закінчувати витяг. Метод slice() витягує елементи з індексом менше end. Виклик slice (1, 4) витягне елементи з другого по четвертий (елементи за індексами 1, 2 і 3). Якщо індекс негативний, end вказує зміщення від кінця послідовності. виклик slice (2, -1) витягне з послідовності елементи з третього по другій з кінця. Якщо end опущений, slice () витягує всі елементи до кінця послідовності (arr.length).
slice() метод об'єкту Array який копію масиву, не змінює вихідний масив, а повертає нову не глибоку копію, яка містить копії елементів, вирізаних з вихідного масиву.
"Не глибока копія" копіює посилання на об’єкт до нового масиву. Тобто якщо об’єкт, на який посилається, змінено, зміни будуть видимі у двох масивах.
var a = [1,2,3,4,5,6,7,8,9];
mas=a.slice(5);
alert(mas); //[6,7,8,9]
a.slice(5,2); //[]
a.slice(5,7); //[6,7]
var mas = new Array("JS", "JavaScript", "Джаваскрипт", "ЯваСкрипт");
var newMas = mas.slice(1, 3);
alert( newMas );
var a=['один', {x:1}];
var b=a.slice();
b[0]='два'; //знінює лише у b
b[1].x=2; //змінює у a і b
alert(JSON.stringify(a));
alert(JSON.stringify(b));