Ядро JavaScript 1.5. Справочник

       

Slice


Извлекает раздел массива и возвращает новый массив.

Метод из Реализован в

JavaScript 1.2, NES 3.0Версия ECMA

ECMA-262 Edition 3


Синтаксис

slice(begin[,end])


Параметры

begin

Индекс с базой 0, с которого начинается извлечение.end

Индекс с базой 0, на котором заканчивается извлечение:

  • slice извлекает до end (не включительно).

    slice(1,4) извлекает элементы со второго по третий включительно (элементы, индексированные 1, 2 и 3).

  • Если индекс отрицательный, end указывает смещение от конца последовательности. slice(2,-1)



    извлекает элементы с 3 по первый включительно в конце последовательности.

  • Если end опущен, slice извлекает до конца последовательности.

  • Описание

    slice не изменяет оригинальный массив, но возвращает новую копию "на один уровень глубже", которая содержит копии элементов извлечённых из оригинального массива. Элементы оригинального массива копируются в новый массив так:

  • Для ссылок на объект (а не реального объекта), slice

    копирует ссылки на объекты в новый массив. И оригинальный, и новый массивы ссылаются на один объект. Если объект, на который ссылаются, изменяется, изменения отражаются в обоих массивах, новом и оригинальном.

  • Для строк и чисел (не для объектов и ), 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


    Извлекает раздел строки и возвращает новую строку.

    Метод из

    Реализован вJavaScript 1.0, NES 2.0

    Версия ECMA

    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



    Содержание раздела