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

       

Array


Позволяет работать с массивами.

Объект ядра

Реализован в

JavaScript 1.1, NES 2.0

JavaScript 1.3: добавлен метод ; изменено свойство ; изменён метод .

ECMA-версия

ECMA-262


Создание

Конструктор объекта Array:

new Array(arrayLength)

new Array(element0, element1, ..., elementN)

 

Литерал массива:



[element0, element1, ..., elementN]

 
JavaScript 1.2

Если Вы специфицируете LANGUAGE="JavaScript1.2" в тэге <SCRIPT> :

new Array(element0, element1, ..., elementN)

 
JavaScript 1.2

Если Вы не специфицируете LANGUAGE="JavaScript1.2" в тэге <SCRIPT> :

new Array([arrayLength])

new Array([element0[, element1[, ..., elementN]]])

 
JavaScript 1.1

new Array([arrayLength])

new Array([element0[, element1[, ..., elementN]]])


Параметры

Начальный размер массива. Доступ к этому значению Вы можете получить через свойство length.

Если специфицированное значение - не число, создаётся массив размером 1 с первым элементом, имеющим специфицированное значение.
Максимальный возможный размер массива: 4,294,967,295.

Список значений элементов массива. Если специфицирована эта форма, массив инициализируется со специфицированными значениями в качестве элементов, а свойство length массива устанавливается в количество аргументов.


Описание

Массив это упорядоченный набор значений, ассоциированных с одним именем переменной.

В этом примере создаётся объект Array с литералом массива; массив coffees содержит три элемента и имеет длину "три":

coffees = ["French Roast", "Columbian", "Kona"]

Вы можете создать плотный массив из двух или более элементов, начиная с индекса 0, если Вы определяете начальные значения для всех элементов. Плотным является массив, в котором каждый элемент имеет значение. Следующий код создаёт плотный массив из трёх элементов:

myArray = new Array("Hello", myVar, 3.14159)
 

Индексирование массива

 Элемент массива индексируется порядковым номером.

Например: предположим, Вы определяете такой массив:

myArray = new Array("Wind","Rain","Fire")

Затем Вы обращаетесь к первому элементу массива myArray[0], а ко второму элементу - myArray[1].
 

Специфицирование единственного параметра

Если Вы специфицируете единственный числовой параметр в конструкторе Array, Вы специфицируете начальный размер массива.
Следующий код создаёт массив из 5 элементов:

billingMethod = new Array(5)

Поведение конструктора Array

зависит от того, является ли единственный параметр числом.

  • Если специфицировано число, конструктор конвертирует число в беззнаковое 32-битное целое число и генерирует массив со свойством length (размер массива), установленным в это целое. Массив первоначально не содержит элементов, хотя и может иметь ненулевой размер.

  • Если специфицировано число, создаётся массив размером 1 с первым элементом, имеющим специфицированное значение.
  • Следующий код создаёт массив размером 25, затем присваивает значения первым трём элементам:

    musicTypes = new Array(25)

    musicTypes[0] = "R&B"

    musicTypes[1] = "Blues"

    musicTypes[2] = "Jazz"

    Увеличение размера массива косвенно

    Размер массива увеличивается, если Вы присваиваете значение элементу с более высоким индексом, чем текущий размер массива. Следующий код создаёт массив размером 0, а затем присваивает значение элементу 99. Это изменяет размер массива на 100.

    colors = new Array()
    colors[99] = "midnightblue"
     

    Создание массива путём использования результата совпадения

    В результате совпадения регулярного выражения и строки может быть создан массив. Этот массив имеет свойства и элементы, которые предоставляют информацию о совпадении. Массив является return-значением ,

    и .

    Чтобы лучше пояснить эти свойства и элементы, просмотрите следующий код, а затем - таблицу:

    <SCRIPT LANGUAGE="JavaScript1.2">

    //Совпадает одно d с последующим одним или более b с последующим одним d

    //Запоминаются совпавшие b с последующим d

    //Регистр игнорируется

    myRe=/d(b+)(d)/i;

    myArray = myRe.exec("cdbBdbsbz");

    </SCRIPT>

    Свойства и элементы, возвращённые из этого совпадения:

    arrayLength

    elementN

    Свойство/Элемент

    Описание

    Пример

    input

    Свойство только для чтения, содержание которого отражает оригинальную строку, относительно которой выполняется совпадение с регулярным выражением.

    cdbBdbsbzindex

    Свойство только для чтения, которое является индексом с базой 0 совпадения в строке.1

    [0]

    Элемент только для чтения, который специфицирует последние совпавшие символы.

    dbBd[1], ...[n]

    Элементы только для чтения, которые специфицируют совпадения подстроки в скобках, если она включена в регулярное выражение. Количество подстрок, заключённых в кавычки, не лимитировано.

    [1]=bB 
    [2]=d


    Обратная совместимость


    JavaScript 1.2.

    Если Вы специфицируете единственный параметр в конструкторе Array, поведение зависит от того, специфицировали ли Вы LANGUAGE="JavaScript1.2"

    в тэге <SCRIPT>:

  • Если Вы специфицируете LANGUAGE="JavaScript1.2" в тэге <SCRIPT>, возвращается массив, состоящий из одного элемента. Например, new Array(5)

    создаёт массив из одного элемента с первым элементом со значением 5. Конструктор с единственным параметром работает так же, как конструктор с несколькими параметрами. Вы не можете специфицировать свойство length массива Array, используя конструктор с одним параметром.

  • Если Вы не специфицируете LANGUAGE="JavaScript1.2" в тэге <SCRIPT>, Вы специфицируете начальный размер массива, как в других версиях JavaScript.

    JavaScript 1.1 и более ранние.

    Если Вы специфицируете единственный параметр в конструкторе Array, Вы специфицируете начальный размер массива. Следующий код создаёт массив из пяти элементов:

    billingMethod = new Array(5)

    JavaScript 1.0.

    Вы обязаны индексировать массив порядковыми числительным; например, myArray[0].


    Свойства. Резюме.

    Свойство

    Описание

    Специфицирует функцию, создающую прототип объекта.

    Для массива, созданного из совпадения с регулярным выражением, индекс с базой 0 места совпадения в строке.

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

    Количество элементов в массиве.

    Позволяет добавлять свойства ко всем объектам.


     

    Метод. Резюме.

    Метод

    Описание

    Объединяет два массива и возвращает новый массив.

    Объединяет все элементы массива в строку.

    Удаляет последний элемент массива и возвращает этот элемент.

    Добавляет один или более элементов в конец массива и возвращает новый размер массива.

    Переворачивает элементы массива: первый элемент становится последним, а последний элемент - первым.

    Удаляет первый элемент массива и возвращает этот элемент.

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

    Добавляет и/или удаляет элементы массива.

    Сортирует элементы массива.

    Возвращает литерал массива, представляющий специфицированный массив; Вы можете использовать это значение для создания нового массива. Переопределяет метод .

    Возвращает строку, представляющую массив и его элементы. Переопределяет метод .

    Добавляет один или более элементов впереди массива и возвращает новый размер массива.

    Возвращает примитивное значение массива. Переопределяет метод .

    Кроме того, этот объект наследует методы и из .


    Примеры

    Пример 1.

    Создаётся массив msgArray

    размером 0, затем присваивается значение элементам msgArray[0] и msgArray[99], а размер массива становится 100.

    msgArray = new Array()

    msgArray[0] = "Hello"

    msgArray[99] = "world"

    // Следующий оператор - true,

    // поскольку определён элемент msgArray[99].

    if (msgArray.length == 100)

       myVar="Массив имеет размер 100."

     

    Пример 2.

    Двухмерный массив. Создаётся двухмерный массив и результат присваивается переменной myVar.

    myVar="Тест многомерного массива; "

    a = new Array(4)

    for (i=0; i < 4; i++) {

       a[i] = new Array(4)

       for (j=0; j < 4; j++) {

          a[i][j] = "["+i+","+j+"]"

       }

    }

    for (i=0; i < 4; i++) {

       str = "Ряд "+i+":"

       for (j=0; j < 4; j++) {

          str += a[i][j]

       }

       myVar += str +"; "

    }

    В этом примере выполняется присвоение следующей строки переменной myVar (разрывы строк даны для удобства чтения):

    Тест многомерного массива;

    Ряд 0:[0,0][0,1][0,2][0,3];

    Ряд 1:[1,0][1,1][1,2][1,3];

    Ряд 2:[2,0][2,1][2,2][2,3];

    Ряд 3:[3,0][3,1][3,2][3,3];



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