Объект Array

Поддерживает создание массивов любого типа данных.

Синтаксис

array = [element0,element,...,elementN] 
array = []
array = new Array()
array = new Array([size])
array = new Array(element0, element1, ..., elementN]]]])

Параметры

array
Обязательный. Имя переменной, которой присваивается объект Array.
size
Необязательный. Размер массива. Поскольку массивы отсчитываются от нуля, созданным элементам присваиваются индексы от нуля до size –1.
element0,...,elementN

Необязательный. Элементы, которые нужно поместить в массив. Создает массив с числом элементов n + 1 и значением length, равным n + 1. При использовании данного синтаксиса необходимо указывать более одного элемента.

Описание, комментарии, примеры

Для получения доступа к отдельным элементам созданного массива используется нотация "[ ]". Обратите внимание, что массивы в JavaScript индексируются начиная с нуля.
var my_array = new Array();
for (i = 0; i < 10; i++) {
    my_array[i] = i;
}
x = my_array[4];
alert(x);

// Output: 4

Чтобы указать размер массива, можно передать в конструктор Array 32-разрядное целое число без знака. Если значение является отрицательным или не является целым числом, возникает ошибка времени выполнения.

Если в конструктор Array передается одно значение, не являющееся числом, свойство length получает значение 1, а значение единственного элемента становится единственным передаваемым аргументом.
var arr = new Array("one");
alert(arr.length + '\n' + arr[0])
// Output:
1
one

В следующей таблице перечислены свойства объекта Array.

constructorУказывает функцию, которая создает массив.
lengthВозвращает целочисленное значение, которое на единицу больше индекса последнего определенного элемента массива.
prototypeВозвращает ссылку на прототип массива.


В следующей таблице перечислены методы объекта Array.

concatВозвращает новый массив, состоящий из объединения двух массивов.
copyWithinКопирует последовательность элементов массива внутри массива.
everyВозвращает true, если каждый элемент в массиве удовлетворяет условию проверяющей функции.
fillЗаполняет массив указанным значением.
filterСоздаёт новый массив со всеми элементами этого массива, для которых функция фильтрации возвращает true.
findВозвращает искомое значение в массиве, если элемент в массиве удовлетворяет условию проверяющей функции или undefined, если такое значение не найдено.
findIndexВозвращает искомый индекс в массиве, если элемент в массиве удовлетворяет условию проверяющей функции или -1, если такое значение не найдено.
forEachВызывает функцию для каждого элемента в массиве.
includesОпределяет, содержится ли в массиве указанный элемент, возвращая, соответственно, true или false.
indexOfВозвращает индекс первого вхождения значения в массиве.
joinВозвращает объект String, состоящий из всех элементов массива, соединенных вместе.
lastIndexOfВозвращает индекс последнего вхождения указанного значения в массиве.
mapСоздаёт новый массив с результатами вызова указанной функции на каждом элементе данного массива.
popУдаляет последний элемент из массива и возвращает его.
pushПрисоединяет новые элементы к массиву и возвращает новую длину массива.
reverseВозвращает объект Array с обратным порядком элементов.
shiftУдаляет первый элемент из массива и возвращает его.
sliceВозвращает фрагмент массива.
someВозвращает true, если хотя бы один элемент в массиве удовлетворяет условию проверяющей функции.
sortВозвращает объект Array с упорядоченными элементами.
spliceУдаляет элементы из массива и при необходимости вставляет на их место новые элементы, возвращая удаленные элементы.
toStringВозвращает строку, представляющую массив и его элементы.
unshiftВставляет новые элементы в начало массива.
valueOfВозвращает примитивное значение массива.
Array.from()Создаёт новый экземпляр Array из массивоподобного или итерируемого объекта.

constructor

Свойство constructor указывает функцию, которая создает массив.

Синтаксис

array.constructor

Описание

Обязательный аргумент array представляет собой имя массива.

Свойство constructor является членом прототипа каждого объекта, у которого есть прототип. Это включает все встроенные объекты JavaScript, за исключением объектов Global и Math. Свойство constructor содержит ссылку на функцию, которая создает экземпляры данного конкретного объекта.

Пример

В следующем примере кода демонстрируется использование свойства constructor.

var x = new Array();

if (x.constructor == Array)
   alert("Object is an Array.");
else
    alert("Object is not an Array.");

// Output:
// Object is an Array.

length

Свойство length получает или задает длину массива. Представляет собой число, на единицу превышающее индекс последнего определенного элемента массива.

Синтаксис

array.length 

Параметры

array
Обязательный. Любой объект Array.

Описание

Массивы JavaScript являются разреженными, а элементы в них не обязательно должны следовать подряд. Свойство length не обязательно совпадает с числом элементов массива. Например, в следующем определении массива свойство my_array.length содержит значение 7, а не 2:

var my_array = new Array( );
my_array[0] = "Test";
my_array[6] = "Another Test";

Если свойство length получает значение, меньшее его предыдущего значения, массив усекается, а все элементы, индексы которых равны или больше нового значения свойства length, теряются.

Если свойство length получает значение, большее его предыдущего значения, массив расширяется, а все новые созданные элементы имеют значение undefined.

Примеры

В следующем примере показано применение свойства length.

var a;
a = new Array(0,1,2,3,4);
var len1 = a.length;
a.length=3;
alert ( len1 + ', ' + a.length + ' [' + a + ']' );
// Output
// 5 3 [0,1,2]

prototype

Свойство prototype возвращает ссылку на прототип класса массива.

Синтаксис

array.prototype

Аргумент array представляет собой имя массива.

Описание

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

Например, чтобы добавить в объект Array метод, возвращающий значение наибольшего элемента массива, объявите функцию, добавьте ее в свойство Array.prototype, а затем используйте ее.

function array_max( ){
    var i, max = this[0];
    for (i = 1; i < this.length; i++)
    {
    if (max < this[i])
    max = this[i];
    }
    return max;
}
Array.prototype.max = array_max;
var myArray = new Array(7, 1, 3, 11, 25, 9
);
alert ( myArray.max() );

// Output: 25

Все встроенные объекты JavaScript имеют свойство prototype, которое доступно только для чтения. К прототипу можно добавлять свойства и методы, но невозможно присвоить объекту другой прототип. Однако пользовательским объектам можно присваивать новый прототип.

concat()

Метод concat() возвращает новый массив, состоящий из объединения двух массивов.

Синтаксис

var newArray = array.concat(value1, value2, ..., valueN)

Параметры

value1, value2, ...
Массивы или значения для присоединения

Описание

Создает новый массив.

Копирует в него текущий объект array и значения value1, value2, ...

При этом, если значение является массивом, то в результат попадут его элементы (в отличие от push), а не сам аргумент.

Метод concat ничего не меняет. Вместо этого он просто возвращает комбинацию "в один уровень глубиной" текущего объекта и аргументов.

Элементы аргументов-массивов добавляются в результат следующим образом:

Объекты   Копируется ссылка на объект. Таким образом, старый и новый массив ссылаются на один и тот же объект. Если объект меняется - эти изменения видны и в новом и в старом массивах.
Элементарные значения  Копируются "как есть"
 

Примеры

Пример: объединение двух массивов

var alpha = ["a", "b", "c"];
var numeric = [1, 2, 3];

// создает массив ["a", "b", "c", 1, 2, 3]; 
var alphaNumeric = alpha.concat(numeric);

Пример: объединение трех массивов

var num1 = [1, 2, 3];
var num2 = [4, 5, 6];
var num3 = [7, 8, 9];

// создает массив [1, 2, 3, 4, 5, 6, 7, 8, 9]; 
var nums = num1.concat(num2, num3);

Пример: добавление значений в массив

var alpha = ['a', 'b', 'c'];

// создает массив ["a", "b", "c", 1, 2, 3]
var alphaNumeric = alpha.concat(1, [2, 3]);

copyWithin()

Метод copyWithin() копирует последовательность элементов массива внутри него в позицию, начинающуюся по индексу target. Копия берётся по индексам, задаваемым вторым и третьим аргументами start и end. Аргумент end является необязательным и по умолчанию равен длине массива.

Синтаксис

array.copyWithin(target, start[, end = this.length])

Параметры

target
Начальный индекс позиции цели, куда копировать элементы.
start
Начальный индекс позиции источника, откуда начинать копировать элементы.
end
Необязательный параметр. Конечный индекс позиции источника, где заканчивать копировать элементы.

Описание

Аргументы target, start и end приводятся к Number и обрезаются до целых значений.

Если аргумент start является отрицательным, он трактуется как length+start, где length — это длина массива. Если аргумент end является отрицательным, он трактуется как length+end.

Функция copyWithin намеренно является обобщённой, она не требует, чтобы значение this внутри неё было объектом Array, и кроме того, функция copyWithin является изменяющим методом, она изменит объект this и вернёт его, а не просто вернёт копию.

Пример

[1, 2, 3, 4, 5].copyWithin(0, 3);
// [4, 5, 3, 4, 5]

[1, 2, 3, 4, 5].copyWithin(0, 3, 4);
// [4, 2, 3, 4, 5]

[1, 2, 3, 4, 5].copyWithin(0, -2, -1);
// [4, 2, 3, 4, 5]

[].copyWithin.call({length: 5, 3: 1}, 0, 3);
// {0: 1, 3: 1, length: 5}

Совместимость с браузерами

45,012,032,0НетНет

every()

Метод every() проверяет, удовлетворяют ли все элементы массива условию, заданному в передаваемой функции.

Синтаксис

arr.every(callback[, thisArg])

Параметры

callback
Функция проверки каждого элемента, принимает три аргумента:
currentValue
Текущий обрабатываемый элемент массива.
index
Индекс текущего обрабатываемого элемента массива.
array
Массив, по которому осуществляется проход.
thisArg
Необязательный параметр. Значение, используемое в качестве this при выполнении функции callback.

Описание

Метод every() вызывает переданную функцию callback один раз для каждого элемента, присутствующего в массиве до тех пор, пока не найдет такой, для которого callback вернет ложное значение (значение, становящееся равным false при приведении его к типу Boolean). Если такой элемент найден, метод every() немедленно вернёт false. В противном случае, если callback вернёт true для всех элементов массива, метод every() вернёт true. Функция callback вызывается только для индексов массива, имеющих присвоенные значения; она не вызывается для индексов, которые были удалены или которым значения никогда не присваивались.

Если в метод every() был передан параметр thisArg, при вызове callback он будет использоваться в качестве значения this. В противном случае в качестве значения this будет использоваться значение undefined. В конечном итоге, значение this, наблюдаемое из функции callback, определяется согласно обычным правилам определения this, видимого из функции.

Метод every() не изменяет массив, для которого он был вызван.

Метод every() вернёт true для пустого массива. Это так называемая бессодержательная истина (vacuously true) — все элементы пустого множества (англ.) удовлетворяют любому заданному условию.

Пример

Следующий пример проверяет, являются ли все элементы массива числами, большими 10.

function isBigEnough(element, index, array) {
  return element >= 10;
}
[12, 5, 8, 130, 44].every(isBigEnough);   // false
[12, 54, 18, 130, 44].every(isBigEnough); // true

Совместимость с браузерами

Да9,0ДаДаДа

fill()

Метод fill() заполняет массив указанным значением.

Синтаксис

array.fill(value [ , start [ , end ] ]);

Параметры

array
Обязательный. Объект Array
value
Обязательный. Значение, используемое для заполнения массива.
start
Необязательный. Начальный индекс, используемый для заполнения массива значений. Значение по умолчанию — 0.
end
Необязательный. Конечный индекс, используемый для заполнения массива значений. Значением по умолчанию является значение свойства length объекта this.

Комментарии

Если значение start отрицательно, то start рассматривается как length+start, где length соответствует длине массива (свойство length). Если значение end отрицательно, end рассматривается как length+end.

метод fill() не поддерживается в Internet Explorer 11 и более ранних версий.

Примеры

В следующих примерах кода массив заполняется значениями:

[0, 0, 0].fill(7, 1);
// Array contains [0,7,7]

[0, 0, 0].fill(7);
// Array contains [7,7,7] 

filter()

Метод filter() создаёт новый массив со всеми элементами, прошедшими проверку, задаваемую в передаваемой функции.

Синтаксис

array.filter(callback[, thisArg])

Параметры

callback
Функция, вызывающаяся для каждого значения в масиве, принимает три аргумента:
element
Текущий обрабатываемый элемент в массиве.
index
Индекс текущего обрабатываемого элемента в массиве.
array
Массив, по которому осуществляется проход.
thisArg
Необязательный параметр. Значение, используемое в качестве this при выполнении функции callback.

Описание

Метод filter() вызывает переданную функцию callback один раз для каждого элемента, присутствующего в массиве, и конструирует новый массив со всеми значениями, для которых функция callback вернула true или значение, становящееся true при приведении в boolean. Функция callback вызывается только для индексов массива, имеющих присвоенные значения; она не вызывается для индексов, которые были удалены или которым значения никогда не присваивались. Элементы массива, не прошедшие проверку функцией callback, просто пропускаются и не включаются в новый массив.

Если в метод filter() был передан параметр thisArg, при вызове callback он будет использоваться в качестве значения this. В противном случае, в качестве значения this будет использоваться значение undefined. В конечном итоге, значение this, наблюдаемое из функции callback, определяется согласно обычным правилам определения this, видимого из функции.

Метод filter() не изменяет массив, для которого он был вызван.

Пример

Следующий пример использует filter() для создания отфильтрованного массива, все элементы которого больше или равны 10, а все меньшие 10 удалены.

function isBigEnough(value) {
  return value >= 10;
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// массив filtered равен [12, 130, 44]

Совместимость с браузерами

Да9,0ДаДаДа

find()

Метод find() возвращает значение в массиве, если элемент удовлетворяет условию проверяющей функции. В противном случае возвращается undefined.

Синтаксис

array.find(callback[, thisArg])

Параметры

callback
Функция, вызывающаяся для каждого значения в масиве, принимает три аргумента:
element
Текущий обрабатываемый элемент в массиве.
index
Индекс текущего обрабатываемого элемента в массиве.
array
Массив, по которому осуществляется проход.
thisArg
Необязательный параметр. Значение, используемое в качестве this при выполнении функции callback.

Описание

Метод find вызывает переданную функцию callback один раз для каждого элемента, присутствующего в массиве, до тех пор, пока она не вернёт true. Если такой элемент найден, метод find немедленно вернёт значение этого элемента. В противном случае, метод find вернёт undefined.

Если в метод find был передан параметр thisArg, при вызове callback он будет использоваться в качестве значения this. В противном случае в качестве значения this будет использоваться значение undefined.

Метод find не изменяет массив, для которого он был вызван.

Примеры

Следующий пример находит в массиве положительных чисел элемент, являющийся простым числом (либо возвращает undefined, если в массиве нет простых чисел).

function isPrime(element, index, array) {
  var start = 2;
  while (start <= Math.sqrt(element)) {
    if (element % start++ < 1) {
      return false;
    }
  }
  return element > 1;
}
alert ([4, 6, 8, 12].find(isPrime) +   // undefined, не найдено
'\n' + [4, 5, 8, 12].find(isPrime) );  // 5

Совместимость с браузерами

4512,0257,1Нет

findIndex()

Метод findIndex() возвращает индекс в массиве, если элемент удовлетворяет условию проверяющей функции. В противном случае возвращается -1.

Синтаксис

array.findIndex(callback[, thisArg])

Параметры

callback
Функция, вызывающаяся для каждого значения в масиве, принимает три аргумента:
element
Текущий обрабатываемый элемент в массиве.
index
Индекс текущего обрабатываемого элемента в массиве.
array
Массив, по которому осуществляется проход.
thisArg
Необязательный параметр. Значение, используемое в качестве this при выполнении функции callback.

Описание

Метод findIndex вызывает переданную функцию callback один раз для каждого элемента, присутствующего в массиве, до тех пор, пока она не вернёт true. Если такой элемент найден, метод findIndex немедленно вернёт индекс этого элемента. В противном случае, метод findIndex вернёт -1. Функция callback вызывается только для индексов массива, имеющих присвоенные значения; она не вызывается для индексов, которые были удалены или которым значения никогда не присваивались.

Если в метод findIndex был передан параметр thisArg, при вызове callback он будет использоваться в качестве значения this. В противном случае в качестве значения this будет использоваться значение undefined.

Метод findIndex не изменяет массив, для которого он был вызван.

Пример

Следующий пример находит в массиве индекс элемента, являющийся простым числом (либо возвращает -1, если в массиве нет простых чисел).

function isPrime(element, index, array) {
  var start = 2;
  while (start <= Math.sqrt(element)) {
    if (element % start++ < 1) {
      return false;
    }
  }
  return element > 1;
}

alert ([4, 6, 8, 12].findIndex(isPrime) +  // -1, не найдено
'\n' + [4, 6, 7, 12].findIndex(isPrime) ); // 2

Совместимость с браузерами

4512,0257,132,0

forEach()

Метод forEach() выполняет указанную функцию один раз для каждого элемента в массиве.

Синтаксис

array.forEach (callback[, thisArg])

Параметры

callback
Функция, вызывающаяся для каждого значения в масиве, принимает три аргумента:
element
Текущий обрабатываемый элемент в массиве.
index
Индекс текущего обрабатываемого элемента в массиве.
array
Массив, по которому осуществляется проход.
thisArg
Необязательный параметр. Значение, используемое в качестве this при выполнении функции callback.

Описание

Метод forEach() выполняет функцию callback один раз для каждого элемента, находящегося в массиве в порядке возрастания. Она не будет вызвана для удалённых или пропущенных элементов массива. Однако, она будет вызвана для элементов, которые присутствуют в массиве и имеют значение undefined.

Если в метод forEach() был передан параметр thisArg, при вызове callback он будет использоваться в качестве значения this. В противном случае, в качестве значения this будет использоваться значение undefined. В конечном итоге, значение this, наблюдаемое из функции callback, определяется согласно обычным правилам определения this, видимого из функции.

Примечание: Не существует способа остановить или прервать цикл forEach(). Если это требуется, можно воспользоваться методами every() или some().

Пример

Следующий код выводит каждый элемент массива на новой строке:

var t='';
function logArrayElements(element, index, array) 
 { t += '\na[' + index + '] = ' + element; }

// Обратите внимание на пропуск по индексу 2, там нет элемента, поэтому он не посещается
[2, 5, , 9].forEach(logArrayElements);
alert (t);
// a[0] = 2
// a[1] = 5
// a[3] = 9

Совместимость с браузерами

Да9,0ДаДаДа

includes()

Метод includes() определяет, содержит ли массив определённый элемент, возвращая в зависимости от этого true или false.

Синтаксис

array.includes(searchElement[, fromIndex])

Параметры

searchElement
 Искомый элемент.
fromIndex
Необязательный параметр. Позиция в массиве, с которой начинать поиск элемента searchElement; по умолчанию установлена в 0.

Пример

[1, 2, 3].includes(2);     // true
[1, 2, 3].includes(4);     // false
[1, 2, 3].includes(3, 3);  // false
[1, 2, 3].includes(3, -1); // true
[1, 2, NaN].includes(NaN); // true

Совместимость с браузерами

47,014,0439,034

indexOf()

Метод indexOf() возвращает индекс первого вхождения значения в массиве.

Синтаксис

array.indexOf(searchElement[, fromIndex])
array
Обязательный. Объект массива.
searchElement

Обязательный. Значение, которое требуется найти в array.
fromIndex
Необязательный. Индекс массива, с которого начинается поиск. Если параметр fromIndex опущен, то поиск начинается с индекса 0.

Возвращаемое значение

Индекс первого вхождения searchElement в массиве или -1, если searchElement не найден.

Описание

Метод не работает в Internet Explorer 8.

Метод indexOf ищет в массиве указанное значение. Метод возвращает индекс первого вхождения или -1, если указанное значение не найдено.

Поиск выполняется в порядке возрастания индекса.

Элементы массива сравниваются со значением searchElement на предмет строгого равенства, аналогично оператору ===.

Необязательный аргумент fromIndex указывает индекс массива, с которого начинается поиск. Если значение параметра fromIndex больше или равно длине массива, возвращается -1. Если fromIndex имеет отрицательное значение, то поиск начинается с индекса, равного длине массива плюс fromIndex.

Примеры

В следующих примерах показано использование метода indexOf.

// Create an array. (The elements start at index 0.)
var ar = ["ab", "cd", "ef", "ab", "cd"];

// Determine the first location of "cd".
alert ( ar.indexOf("cd") );

// Output: 1

// Find "cd" starting at index 2.
alert ( ar.indexOf("cd", 2) );
// Output: 4

// Find "gh" (which is not found).
alert ( ar.indexOf("gh") );

// Output: -1

// Find "ab" with a fromIndex argument of -2.
// The search starts at index 3, which is the array length plus -2.
alert ( ar.indexOf("ab", -2) );
// Output: 3

join()

Метод join() возвращает объект String, состоящий из всех элементов массива, соединенных вместе.

Синтаксис

array.join( [glue] )

Параметры

glue
Строковый аргумент, с помощью которого будут соединены в строку все элементы массива. Если аргумент не задан, элементы будут соединены запятыми.

Примеры

var arr = [ 1, 2 , 3 ];

alert ( arr.join('+') );  // "1+2+3"
  
alert ( arr.join() );     // "1,2,3"

lastIndexOf()

Метод lastIndexOf() возвращает индекс последнего вхождения указанного значения в массиве.

Синтаксис

array.lastIndexOf(searchElement[, fromIndex])

Параметры

array
Обязательный. Объект массива, в котором выполняется поиск.
searchElement
Обязательный. Значение, которое требуется найти в array.
fromIndex
Необязательный. Индекс массива, с которого начинается поиск. Если аргумент fromIndex опущен, поиск начинается с последнего индекса в массиве.

Возвращаемое значение

Индекс последнего вхождения searchElement в массиве или -1, если searchElement не найден.

Описание

Метод не работает в Internet Explorer 8.

Метод lastIndexOf ищет в массиве указанное значение. Метод возвращает индекс первого вхождения или -1, если указанное значение не найдено.

Поиск выполняется в порядке убывания индекса (начиная с последнего элемента). Для поиска в порядке возрастания используется метод indexOf.

Элементы массива сравниваются со значением searchElement на предмет строгого равенства, аналогично сравнению с использованием оператора ===.

Необязательный аргумент fromIndex указывает индекс массива, с которого начинается поиск. Если fromIndex больше или равен длине массива, выполняется поиск во всем массиве. Если fromIndex имеет отрицательное значение, то поиск начинается с индекса, равного длине массива плюс fromIndex. Если вычисленный индекс меньше 0, возвращается -1.

Примеры

В следующем примере показано использование метода lastIndexOf.

// Create an array.
var ar = ["ab", "cd", "ef", "ab", "cd"];

// Determine the first location, in descending order, of "cd".
alert ( ar.lastIndexOf("cd") );

// Output: 4

// Find "cd" in descending order, starting at index 2.
alert ( ar.lastIndexOf("cd", 2) );

// Output: 1

// Search for "gh" (which is not found).
alert ( ar.lastIndexOf("gh") );

// Output: -1

// Find "ab" with a fromIndex argument of -3.
// The search in descending order starts at index 3,
// which is the array length minus 2.
alert ( ar.lastIndexOf("ab", -3)  );
// Output: 0

map()

Метод map() создаёт новый массив с результатом вызова указанной функции для каждого элемента массива.

Синтаксис

array.map(callback[, thisArg])

Параметры

callback
Функция, вызывающаяся для каждого значения в масиве, принимает три аргумента:
element
Текущий обрабатываемый элемент в массиве.
index
Индекс текущего обрабатываемого элемента в массиве.
array
Массив, по которому осуществляется проход.
thisArg
Необязательный параметр. Значение, используемое в качестве this при выполнении функции callback.

Описание

Метод map вызывает переданную функцию callback один раз для каждого элемента, в порядке их появления и конструирует новый массив из результатов её вызова. Функция callback вызывается только для индексов массива, имеющих присвоенные значения, включая undefined. Она не вызывается для пропущенных элементов массива (то есть для индексов, которые никогда не были заданы, которые были удалены или которым никогда не было присвоено значение.

Если в метод map был передан параметр thisArg, при вызове callback он будет использоваться в качестве значения this. В противном случае в качестве значения this будет использоваться значение undefined. В конечном итоге, значение this, наблюдаемое из функции callback, определяется согласно обычным правилам определения this, видимого из функции.

Метод map не изменяет массив, для которого он был вызван (хотя функция callback может это делать).

Примеры

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

var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
// теперь roots равен [1, 2, 3], а numbers всё ещё равен [1, 4, 9]


Следующий код показывает, как работает отображение, когда функция требует один аргумент. Аргумент будет автоматически присваиваться каждому элементу массива, когда map проходит по оригинальному массиву.

var numbers = [1, 4, 9];
var doubles = numbers.map(function(num) {
  return num * 2;
});
// теперь doubles равен [2, 8, 18], а numbers всё ещё равен [1, 4, 9]

Совместимость с браузерами

Да9,0ДаДаДа

pop()

Метод pop() удаляет последний элемент из массива и возвращает его.

Синтаксис

array.pop()

Возвращаемое значение

Удаленный элемент

Комментарии

Этот метод изменяет исходный массив.

Примеры

myFish = ["angel", "clown", "mandarin", "surgeon"];
popped = myFish.pop();
alert ( 'теперь popped = ' + popped + 
	'\nmyFish = ' + myFish );

push()

Метод push() присоединяет новые элементы к массиву и возвращает новую длину массива.

Синтаксис

array.push( elem1, elem2, ... )

Возвращаемое значение

Новая длина массива

Параметры

elem1, elem2, ...
Эти элементы будут добавлены в конец массива

Комментарии

Метод push полезен для добавления значений в массив.

Он добавляет элементы, начиная с текущей длины length и возвращает новую, увеличенную длину массива.

Примеры

Добавление двух элементов

// array.length = 2
var array = [ "one", "two" ]  

// добавить элементы "three", "four"
var pushed = array.push("three", "four") 
alert (
	"теперь array = " + array + '\n' +
	"array.length = " + array.length + '\n' +
	"pushed = " + pushed );

reverse()

Метод reverse() возвращает объект Array с обратным порядком элементов.

Синтаксис

array.reverse()

Комментарии

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

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

Примеры

arr = [1,2,3]

a = arr.reverse() // [ 3, 2, 1]

for(var i=0; i<a.length; i++) {
  alert(a[i]) // 3, 2, 1
}

Обратите внимание, никакого нового массива не создается. Изменяется сам массив arr и возвращается ссылка на измененный массив.

arr = [1,2,3]

a = arr.reverse() // [ 3, 2, 1]

alert(a === arr) // true

shift()

Метод shift() удаляет первый элемент из массива и возвращает его.

Синтаксис

var elem = array.shift()

Комментарии

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

Примеры

var arr = ["мой","маленький", "массив"]

var my = arr.shift() // => "мой"

alert ( "Удаленный элемент: " + my + '\n' +
	"элемент с индексом 0: " +  arr[0] + '\n' +
	"Новый массив: " + arr )

slice()

Метод slice() возвращает фрагмент массива.

Синтаксис

array.slice( start[, end] )

Параметры

start
Индекс элемента в массиве, с которого будет начинаться новый массив.
end
Необязательный параметр. Индекс элемента в массиве, на котором новый массив завершится. При этом последним в новом массиве будет элемент с индексом end-1

Комментарии

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

Примеры

Элементы из середины

var arr = [ 1, 2, 3, 4, 5 ] 

arr.slice(2) // => [3, 4, 5]

arr.slice(1, 4) // => [2, 3, 4]

arr.slice(2, 3) // => [3]

Отсчет с конца

arr = [1, 2, 3, 4, 5]

arr.slice(-2) // => [4, 5]
arr.slice(arr.length - 2) // то же самое

arr.slice(-3, -1) // [3, 4]
arr.slice(arr.length-3, arr.length-1) // то же самое

some()

Метод some() проверяет, удовлетворяет ли хоть какой-нибудь элемент массива условию, заданному в передаваемой функции.

Синтаксис

array.some(callback[, thisArg])

Параметры

callback
Функция проверки каждого элемента, принимает три аргумента:
currentValue
Текущий обрабатываемый элемент в массиве.
index
Индекс текущего обрабатываемого элемента в массиве.
array
Массив, по которому осуществляется проход.
thisArg
Необязательный параметр. Значение, используемое в качестве this при выполнении функции callback.

Описание

Метод some() вызывает переданную функцию callback один раз для каждого элемента, присутствующего в массиве до тех пор, пока не найдет такой, для которого callback вернет истинное значение (значение, становящееся равным true при приведении его к типу Boolean). Если такой элемент найден, метод some() немедленно вернёт true. В противном случае, если callback вернёт false для всех элементов массива, метод some() вернёт false. Функция callback вызывается только для индексов массива, имеющих присвоенные значения; она не вызывается для индексов, которые были удалены или которым значения никогда не присваивались.

Если в метод some() был передан параметр thisArg, при вызове callback он будет использоваться в качестве значения this. В противном случае в качестве значения this будет использоваться значение undefined. В конечном итоге, значение this, наблюдаемое из функции callback, определяется согласно обычным правилам определения this, видимого из функции.

Метод some() не изменяет массив, для которого он был вызван.

Пример

Следующий пример проверяет, существует ли в массиве какой-нибудь элемент, больший 10.

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

[2, 5, 8, 1, 4].some(isBiggerThan10);  // false
[12, 5, 8, 1, 4].some(isBiggerThan10); // true

Совместимость с браузерами

47,014,0439,034

sort()

Метод sort() возвращает объект Array с упорядоченными элементами.

Синтаксис

array.sort( [sortFunction] )

Параметры

sortFunction
Необязательный параметр - функция сортировки.

Комментарии

Данный метод изменяет исходный массив. Получившийся массив также возвращается в качестве результата.

Примеры

arr = [1,-1, 0]
a = arr.sort() 

// => arr = [ -1, 0, 1 ]

alert(a === arr) // => true, это тот же сортированный массив

splice()

Метод splice() удаляет элементы из массива и при необходимости вставляет на их место новые элементы, возвращая удаленные элементы.

Синтаксис

array.splice( start, deleteCount, [elem1[, elem2[, ...[, elemN]]]] )

Параметры

start
Индекс в массиве, с которого начинать удаление.
deleteCount
Кол-во элементов, которое требуется удалить, начиная с индекса start.
  • IE: если этот параметр не указан, то ни один элемент не будет удалён.
  • Firefox: если этот параметр не указан, то будут удалены все элементы, начиная с индекса start.
  • Opera: (исследовано в версии 9.61) если этот параметр не указан, то будут удалён 1 элемент, имеющий индекс start+1. В этом же случае вместо удалённого элемента будет возвращена пустая строка.
elem1, elem2, ..., elemN

Добавляемые элементы в массив. Добавление начинается с позиции start.

Комментарии

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

Он объединяет в себе две разные функциональности: удаляет часть массива и добавляет новые элементы на место удаленных.

При этом можно свести к нулю количество удаляемых элементов - тогда это будет просто добавление.

И можно не добавлять элементов - тогда это будет просто удаление.

Метод возвращает массив из удаленных элементов.

Примеры

Удаление

arr = [ "a", "b", "c", "d", "e" ]
removed = arr.splice(1,2) 

// removed = [ "b", "c"] (2 элемента с arr[1])
// arr = ["a", "d", "e"] (те что остались)

Удаление одного элемента

arr = [ "a", "b", "c", "d", "e" ]
// удалим с индекса 2 один элемент
arr.splice(2,1) 
// arr = ["a", "b", "d", "e"]

Добавление элементов

arr = [ "a", "b", "c", "d", "e" ]
// начиная с индекса 2 удалим 0 элементов 
// и добавим "b+"
arr.splice(2,0,"b+")
// arr = ["a", "b", "b+", "c", "d", "e"]

С конца

arr = [ "a", "b", "c", "d", "e" ]
// удалим с индекса 1 начиная с конца 1 элемент
arr.splice(-1,1)

toString()

Метод toString() возвращает строку, представляющую специфицированный массив и его элементы.

Синтаксис

array.toString()

Возвращаемое значение

Метод toString объединяет массив и возвращает одну строку, содержащую все элементы массива, разделённые запятыми.

Комментарии

JavaScript вызывает метод toString автоматически, когда массив представляется как текстовое значение или когда к массиву обращаются при конкатенации строк.

Примеры

Следующий код создаёт массив и использует toString для конвертации массива в строку.

var monthNames = new Array("Jan","Feb","Mar","Apr")

myVar=monthNames.toString() // присваивает "Jan,Feb,Mar,Apr" переменной myVar

unshift()

Метод unshift() вставляет новые элементы в начало массива.

Синтаксис

array.unshift( [elem1[, elem2[, ...[, elemN]]]] )

Параметры

elem1, elem2, ..., elemN

Добавляемые в начало массива элементы. Добавленные элементы сохранят порядок следования.

Возвращаемое значение

Данный метод изменяет исходный массив. Добавляет в него аргументы и возвращает получившуюся длину.

Пример

var arr = ["a", "b"]
unshifted = arr.unshift(-2, -1);
alert(arr ); // [ -2, -1, "a", "b"]
alert("New length: " + unshifted); // 4

valueOf()

Метод valueOf() возвращает примитивное значение массива.

Синтаксис

array.valueOf();

Возвращаемое значение

Метод valueOf объекта Array возвращает примитивное значение массива или примитивное значение его элементов так:

Тип объекта элементаТип данных возвращаемого значения
BooleanBoolean
Number или Datenumber
Все прочиеstring

Примеры

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

var arr = [1, 2, 3, 4];
var s = arr.valueOf();

if (arr === s)
	alert ("same");
else
	alert ("different");

Array.from()

Метод Array.from() создаёт новый экземпляр Array из массивоподобного или итерируемого объекта.

Синтаксис

Array.from(arrayLike[, mapFn[, thisArg]])

Параметры

arrayLike
Массивоподобный или итерируемый объект, преобразуемый в массив.
mapFn
Необязательный. Отображающая функция, вызываемая для каждого элемента массива.
thisArg
Необязательный. Значение, используемое в качестве this при выполнении функции mapFn.

Возвращаемое значение

Новый экземпляр Array

Описание

Array.from() позволяет вам создавать массивы из:

Array.from() имеет необязательный параметр mapFn, который позволяет вам выполнять функциюmap для каждого элемента создаваемого массива (или его подкласса). Проще говоря, вызов Array.from(obj, mapFn, thisArg) эквивалентен цепочке Array.from(obj).map(mapFn, thisArg), за исключением того, что он не создаёт промежуточного массива.

Пример

s = "Массив из строки String:\n";
s += Array.from('foo');   // ['f', 'o', 'o']

var t = new Set(['foo', window]);
s += "\n\nМассив из Set:\n";
s += Array.from(t);      // ['foo', window]

var m = new Map([[1, 2], [2, 4], [4, 8]]);
s += "\n\nМассив из Map:\n";
s += Array.from(m);      // [[1, 2], [2, 4], [4, 8]]

function f() {  return Array.from(arguments); }
s += "\n\nМассив из массивоподобного объекта (arguments)\n";
s += f(1, 2, 3);         // [1, 2, 3]

s += `
\nИспользование стрелочной функции и Array.from()
Использование стрелочной функции в качестве функции отображения для

1. манипулирования элементами
`;
s += Array.from([1, 2, 3], x => x + x);    // [2, 4, 6]

s += "\n\n2. Генерирования последовательности чисел\n"
s += Array.from({ length: 5 }, (v, k) => k);    // [0, 1, 2, 3, 4]

alert(s);