Массивы предназначены для хранения коллекций данных, в т.ч. упорядоченных. Синтаксис создания массива:
// создание с помощью литерала
var array1 = []; // пустой массив
var array2 = [1, 2, 3]; // массив с элементами
var array3 = [true, 42, "dog"]; // массив с элементами разного типа
// создание массива в помощью new Array
var array4 = new Array(); // пустой массив
var array5 = new Array(2); // массив длиной 2 элемента
var array6 = new Array(0.5); // Error: Invalid array length
var array7 = new Array("2"); // массив длиной 1 элемент
var array8 = new Array(1, "2", null); // массив с элементами разного типа
Помимо индексов массив имеет специальное свойство length, которое указывает на длину неразреженного массива.
Доступ к элементам массива осуществляется с помощью квадратных скобок:
var days = ["Sunday", "Monday"];
alert(days[0]);
alert(days[1]);
days[2] = "Tuesday"
alert(days[2]);
Массивы в JavaScript так же не имеют строгой типизации, т.е. могут содержать в себе разнородные данные, в том числе и другие массивы. Такие массивы называются многомерными.
var matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
alert(matrix[0][0]);
alert(matrix[2][2]);
toString() | преобразует массив в строку |
---|---|
pop() | удаляет элемент c конца массива, возвращает удаленный элемент * |
push(el1, el2, ...) | добавляет элемент(ы) в конец массива * |
shift() | удаляет элемент c начала массива, возвращает удаленный элемент * |
unshift(el1, el2, ...) | добавляет элемент(ы) в начало массива * |
indexOf(val [, fromIndex]) | возвращает индекс элемента со значением val или -1, если элемент не найден. Ищет с начала массива. Если задан fromIndex, то осуществляет поиск, начиная с заданной позиции и до конца массива. Если fromIndex отрицаетльный, то начальный индекс устанавливается с конца |
lastIndexOf(val [, fromIndex]) | возвращает индекс элемента со значением val или -1, если элемент не найден. Ищет с конца массива. Если задан fromIndex, то осуществляет поиск, начиная с заданной позиции и до начала массива |
join([separator]) | объединяет элементы массива в строку, в качестве разделителя использует separator или "," |
concat(val1 [, val2 [, ...[, valN]]]) | возвращает массива, к которому справа добавлены элементы, переданные в качестве аргументов |
reverse() | меняет порядок следования элементов массива на обратный * |
slice([begin [, end]]) | возвращает участок массива от элемента с индексом begin (или 0) и до end (или до конца массива) |
splice(start [, deleteCount [, val1, val2, ...]]) | удаляет, начиная с позиции start, deleteCount элементов (или до конца массива), вставляет на их место элементы valN |
sort([callback]) | сортирует массив по возрастанию, используя лексикографическое сравнение. Если задана callback, то использует её для определения порядка элементов |
forEach(callback(val, [i, [arr]]) { // итератор }); |
выполняет callback для каждого элемента. Callback принимает аргументами значение текущего элемента, его индекс и ссылку на массив. Замена для for |
every(callback(val, [i, [arr]]) { // условие }); |
возвращает true, если все элементы массива удовлетворяют условию в callback |
some(callback(val, [i, [arr]]) { // условие }); |
возвращает true, если хотя бы один элемент массива удовлетворяет условию в callback |
filter(callback(val, [i, [arr]]) { // условие }); |
возвращает подмассив с элементами, для которых callback вернет true |
find(callback(val, [i, [arr]]) { // условие }); |
возвращает первый элемент, для которго callback вернет true |
includes(val [, fromIndex]) | возвращает true, если val есть в массиве. Начинает поиск с fromIndex |
map(callback(val, [i, [arr]]) { // код }); |
возвращает массив, в котором для каждого элемента исходного массива была выполнена callback |
reduce(callback(result, val) { // return result }[, initVal]); |
Выполняет callback для каждого элемента массива, результат накапливает в result. Начальное значение result можно задать в initVal, иначе берется начальный элемент массива |
* – метод меняет исходный массив |