Урок 7. Объект Array (массив)

Массив представляет собой упорядоченный набор данных.

Существует несколько способов создания массива. В любом случае прежде всего создается новый объект массива:

имя_массива = new Array ([длина массива])

Рассмотрим создание массива earth, содержащего в качестве элементов некоторые характеристики нашей планеты:

    planet = new Array(4) // массив из 4-х элементов
    planet[0] = "Earth"
    planet[1] = 24
    planet[2] = 6378
    planet[3] = 365.25
    document.writeln(planet[0])
    document.writeln(planet[3])

Методы Array

concat (массив) - конкатенация массивов, объединяет два массива в третий массив.
Синтаксис: имя_массива1.concat(массив2)

    a1 = new Array(1, 2, "star")
    a2 = new Array("a", "b", "c", "d")
    a3 = a1.concat(a2)
    document.writeln(a3)

join(разделитель) - создает строку из элементов массива с указанным разделителем между ними.
Синтаксис: имя_массива.join(строка)

    document.writeln(a3.join(" - "))

splice(индекс, количество [, элем1 [, элем2 [, ...элемN]]]) - удаляет из массива несколько элементов и возвращает массив из удаленных элементов или заменяет значения элементов.
Синтаксис: имя_массива.splice (индекс, количество [, элем1 [, элем2 [, ...элемN]]])

    arr = new Array("Yellow", "Red", "Green", "Blue", "White")
    arr.splice(1,3, "Darkgreen", "Black")
    document.writeln("<br>",arr)

Функции обработки числовых массивов

Во многих приложениях требуется получить статистические характеристики числовых данных, хранящихся в виде массива: сумму всех чисел, среднее, максимальное и минимальное значение.

Функция, возвращающая сумму (или конкатенацию) значений всех элементов:

    function sum(arr) {
        var s = arr[0]
        for (i=1; i < arr.length; i++)
            s += arr[i]
        return s
    }
    a = new Array(1,5,"hello")
    b = new Array(2, 3.2, 100, 21.3)
    document.writeln("<br>",sum(a))
    document.writeln(sum(b))

Функции, возвращающие минимальное и максимальное значение среди элементов массива:

    function amin(arr) {
        var m = arr[0]
        for (i=1; i < arr.length; i++)
            if (arr[i] < m)
                m = arr[i]
        return m
    }
    function amax(arr) {
        var m = arr[0]
        for (i=1; i < arr.length; i++)
            if (arr[i] > m)
                m = arr[i]
        return m
    }
    a = new Array(15, 5, 89, 12, 104, 45, 34, 9, 110)
    document.writeln("<br>",amin(a))
    document.writeln(amax(a))