Array.slice()

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));