Slice
Извлекает раздел массива и возвращает новый массив.
Метод из
JavaScript 1.2, NES 3.0
ECMA-262 Edition 3
Синтаксис
slice(begin[,end])
Параметры
begin |
Индекс с базой 0, с которого начинается извлечение.
Индекс с базой 0, на котором заканчивается извлечение:
slice(1,4) извлекает элементы со второго по третий включительно (элементы, индексированные 1, 2 и 3).
извлекает элементы с 3 по первый включительно в конце последовательности.
Описание
slice не изменяет оригинальный массив, но возвращает новую копию "на один уровень глубже", которая содержит копии элементов извлечённых из оригинального массива. Элементы оригинального массива копируются в новый массив так:
копирует ссылки на объекты в новый массив. И оригинальный, и новый массивы ссылаются на один объект. Если объект, на который ссылаются, изменяется, изменения отражаются в обоих массивах, новом и оригинальном.
копирует строки и числа в новый массив. Изменения строки или числа в одном массиве не оказывают влияния на другой массив.
Если новый элемент добавляется к любому массиву, другой массив не изменяется.
Примеры
В следующем примере slice создаёт новый массив newCar
из myCar. Оба содержат ссылку на объект myHonda. Если цвет myHonda изменяется на purple, оба массива отражают изменение.
<SCRIPT LANGUAGE="JavaScript1.2">
//Используя slice, создать newCar из myCar.
myHonda = {color:"red",wheels:4,engine:{cylinders:4,size:2.2}}
myCar = [myHonda, 2, "cherry condition", "purchased 1997"]
newCar = myCar.slice(0,2)
//Записать значения из myCar, newCar и цвет myHonda,
// на который имеются ссылки в обоих массивах.
document.write("myCar = " + myCar + "<BR>")
document.write("newCar = " + newCar + "<BR>")
document.write("myCar[0].color = " + myCar[0].color + "<BR>")
document.write("newCar[0].color = " + newCar[0].color + "<BR><BR>")
//Изменить цвет myHonda.
myHonda.color = "purple"
document.write("The new color of my Honda is " + myHonda.color + "<BR><BR>")
//Записать цвет myHonda, на который ссылаются оба массива.
document.write("myCar[0].color = " + myCar[0].color + "<BR>")
document.write("newCar[0].color = " + newCar[0].color + "<BR>")
</SCRIPT>
Скрипт записывает:
myCar = [{color:"red", wheels:4, engine:{cylinders:4, size:2.2}}, 2,
"cherry condition", "purchased 1997"]
newCar = [{color:"red", wheels:4, engine:{cylinders:4, size:2.2}}, 2]
myCar[0].color = red newCar[0].color = red
The new color of my Honda is purple
myCar[0].color = purple
newCar[0].color = purple
Извлекает раздел строки и возвращает новую строку.
Метод из
Реализован в
ECMA-262 Edition 3
Синтаксис
slice(beginslice[, endslice])
Параметры
beginslice |
Индекс с базой 0, по которому начинается извлечение.
endslice
Индекс с базой 0, по которому заканчивается извлечение. При отсутствии, slice извлекает до конца строки.
Описание
slice извлекает текст из одной строки и возвращает новую строку. Изменения в тексте одной строки не влияют на другие строки.
slice извлекает до, но не включая, endslice. String.slice(1,4) извлекает символы со второго по четвёртый (символы, индексированные 1, 2 и 3).
Как отрицательный индекс, endslice показывает смещение от конца строки . String.slice(2,-1) извлекает символы с третьего через второй и последний.
Пример
В этом примере slice используется для создания новой строки.
<SCRIPT>
str1="The morning is upon us. "
str2=str1.slice(3,-5)
document.write(str2)
</SCRIPT>
Будет записано:
morning is upon