Класс Array

Набор функций для работы с массивами.
Включает реализацию функций, которые отсутствуют в некоторых браузерах, но содержатся в новых стандартах (ECMA).

Находится в базовом файле y5.js.

everyJS 1.6

every(callback, thisObject) -> Boolean — true - если все функции проверки вернули true, иначе - false

Тестирование каждого элемента массива при помощи функции проверки.
Результатом тестирования массива является true, если все функции проверки вернули true. Иначе результатом тестирования массива будет false.

Имя аргументаТипОписание
callbackFunctionфункция для проверки элемента массива (должна возвращать true или false)
thisObjectObjectконтекст выполнения функции проверки

Пример:

function isBigEnough(element, index, array) {
    return (element >= 10);
}

var passed = [12, 5, 8, 130, 44].every(isBigEnough);
// passed == false
passed = [12, 54, 18, 130, 44].every(isBigEnough);
// passed == true

filterJS 1.6

filter(callback, thisObject) -> Array — массив

Фильтрация элементов массива.
Возвращает новый массив, который состоит из элементов, прошедших функцию проверки, т.е. удовлетворяющих определенным условиям.
Исходный массив не изменяется.

Имя аргументаТипОписание
callbackFunctionфункция для проверки элемента массива (должна возвращать true или false)
thisObjectObjectконтекст выполнения функции проверки

Пример:

function isBigEnough(element, index, array) {
    return (element >= 10);
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered == [12, 130, 44]

forEachJS 1.6

forEach(callback, thisObject)

Обработка каждого элемента массива заданной функцией.

Имя аргументаТипОписание
callbackFunctionфункция, выполняемая для каждого элемента
thisObjectObjectконтекст выполнения функции

Пример:

function printElt(element, index, array) {
    print("[" + index + "] == " + element);
}
[2, 5, 9].forEach(printElt);
// Печатает:
// [0] == 2
// [1] == 5
// [2] == 9

indexOfJS 1.6

indexOf(searchElement, fromIndex) -> Number — индекс искомого элемента

Поиск элемента массива.
Ищет заданный элемент с начала массива и возвращает его индекс или -1, если необходимого элемента в массиве нет.

Имя аргументаТипОписание
searchElementObjectискомый элемент
fromIndexNumberиндекс, с которого ищется элемент (по умолчанию с первого элемента массива)

Пример:

var a = [2, 5, 9];
var i = a.indexOf(2);
// i == 0
i = a.indexOf(7);
// i == -1

lastIndexOfJS 1.6

lastIndexOf(searchElement, fromIndex) -> Number — индекс искомого элемента

Обратный поиск элемента массива.
Ищет заданный элемент с конца массива и возвращает его индекс или -1, если необходимого элемента в массиве нет.

Имя аргументаТипОписание
searchElementObjectискомый элемент
fromIndexNumberиндекс, с которого ищется элемент (по умолчанию с последнего элемента массива)

Пример:

var array = [2, 5, 9, 2];
var index = array.lastIndexOf(2);
// index == 3
index = array.lastIndexOf(7);
// index == -1
index = array.lastIndexOf(2, 3);
// index == 3
index = array.lastIndexOf(2, 2);
// index == 0
index = array.lastIndexOf(2, -2);
// index == 0
index = array.lastIndexOf(2, -1);
// index == 3

mapJS 1.6

map(callback, thisObject) -> Array — массив элементов

Обработка каждого элемента массива заданной функцией.
Создает новый массив с результатами выполнения функции для каждого элемента массива.
Исходный массив не изменяется.

Имя аргументаТипОписание
callbackFunctionфункция, выполняемая для каждого элемента
thisObjectObjectконтекст выполнения функции

Пример:

var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
// roots == [1, 2, 3]
// numbers == [1, 4, 9]

popJS 1.2

pop() -> Object — удаленный элемент массива

Удаление последнего элемента массива.
Возвращает удаляемый элемент.
Функция изменяет исходный массив.

Пример:

var a = [1, 2, 3, 4];
a.pop();
// -> 4
// a == [1, 2, 3]

var i = [];
typeof i.pop();
// -> "undefined"
// i == []

pushJS 1.2

push(element1, element2, elementN) -> Number — длина полученного массива

Добавление элемента в конец массива.
Возвращает длину полученного массива.
Функция изменяет исходный массив.

Имя аргументаТипОписание
element1Objectэлемент добавляемый в конец массива
element2Object
elementNObject

Пример:

var a = ["Mars", "Pluto", "Mercury"];
a.push("Venus");
// a == ["Mars", "Pluto", "Mercury", "Venus"]
// a.length == 4

reduceJS 1.8

reduce(callback, initial)

Обработка слева направо соседних элементов массива заданной функцией. Функция применяется одновременно к двум элементам массива и превращает их в одно значение.
Функция изменяет исходный массив.

Имя аргументаТипОписание
callbackFunctionфункция, выполняемая для каждого элемента
initialObjectначальное значение

Пример:

[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array) {
    return previousValue + currentValue;
});
// 10

reduceRightJS 1.8

reduceRight(callback, initial)

Обработка cправа налево соседних элементов массива заданной функцией. Функция применяется одновременно к двум элементам массива и превращает их в одно значение.
Функция изменяет исходный массив.

Имя аргументаТипОписание
callbackFunctionфункция выполняемая для каждого элемента
initialObjectначальное значение

Пример:

[0, 1, 2, 3, 4].reduceRight(function(previousValue, currentValue, index, array) {
    return previousValue + currentValue;
});
// 10

shiftJS 1.2

shift() -> Object — удаленный элемент массива

Удаление первого элемента массива. Возвращает удаляемый элемент.
Функция изменяет исходный массив.

Пример:

var a = [1, 2, 3, 4];
a.shift();
// -> 1
// a == [2, 3, 4]

var i = [];
typeof i.shift();
// -> "undefined"
// i == []

someJS 1.6

some(callback, thisObject)

Тестирование каждого элемента массива при помощи функции проверки. Результатом тестирования массива является true, если хотя бы один элемент прошел успешную проверку. Иначе результатом тестирования массива будет false.

Имя аргументаТипОписание
callbackFunctionфункция, выполняемая для каждого элемента
thisObjectObjectконтекст выполнения функции

Пример:

function isBigEnough(element, index, array) {
    return (element >= 10);
}
var passed = [2, 5, 8, 1, 4].some(isBigEnough);
// passed == false
passed = [12, 5, 8, 1, 4].some(isBigEnough);
// passed == true

spliceJS 1.2

splice(start, deleteCount, element1, element2, ..., elementN) -> Array — удаленные элементы массива

Изменение содержимого массива. Позволяет удалить часть элементов массива и одновременно добавить новые. Возвращает массив удаленных элементов.
Функция изменяет исходный массив.

Имя аргументаТипОписание
startNumberиндекс, с которого изменяется массив
deleteCountNumberколичество удаляемых элементов (если 0 или не указан, то элементы не удаляются)
element1Objectэлемент, добавляемый в массив (если элемент не определен, то функция просто удаляет элементы из массива)
element2Object
...Object
elementNObject

Пример:

var a = [1, 2, 3, 4, 5];
a.splice(1, 3);
// удаленные элементы -> [2, 3, 4]
// a == [1, 5]

var i = [1, 2, 3, 4, 5];
i.splice(1, 2, 6, "foo");
// удаленные элементы -> [2, 3]
// i == [1, 6, "foo", 4, 5]

unshiftJS 1.2

unshift(element1, element2, elementN) -> Number — длина полученного массива

Добавление элемента в начало массива. Возвращает длину полученного массива.
Функция изменяет исходный массив.

Имя аргументаТипОписание
element1Objectэлемент, добавляемый в начало массива
element2Object
elementNObject

Пример:

var a = ["Mars", "Pluto", "Mercury"];
a.unshift("Venus");
// a == ["Venus", "Mars", "Pluto", "Mercury"]
// a.length == 4