Ядро 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



    Содержание  Назад  Вперед