- Операторы
- Управляющие инструкции
- JS Объекты
- Array
- Boolean
- Date
- Error
- Function
- Global
- JSON
- Math
- Number
- Object
- RegExp
- String
- Symbol
- Итераторы и генераторы
- Map и WeakMap
- Set и WeakSet
- Локализация
- браузер BOM
- HTML DOM
- События
- HTML Объекты
- Промисы, async/await
- Сетевые запросы
- Бинарные данные и файлы
- Разное
Объект 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,0 | 12,0 | 32,0 | Нет | Нет |
every()
Метод every() проверяет, удовлетворяют ли все элементы массива условию, заданному в передаваемой функции.Синтаксис
arr.every(callback[, thisArg])
Параметры
- callback
- Функция проверки каждого элемента, принимает три аргумента:
- currentValue
- Текущий обрабатываемый элемент массива.
- index
- Индекс текущего обрабатываемого элемента массива.
- array
- Массив, по которому осуществляется проход.
- thisArg
- Необязательный параметр. Значение, используемое в качестве this при выполнении функции callback.
Описание
Метод every() вызывает переданную функцию callback
один раз для каждого элемента, присутствующего в массиве до тех пор, пока не найдет такой, для которого callback
вернет ложное значение (значение, становящееся равным false
при приведении его к типу Boolean
). Если такой элемент найден, метод every() немедленно вернёт false
. В противном случае, если callbac
k вернёт 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
. - callback
- Функция, вызывающаяся для каждого значения в масиве, принимает три аргумента:
- element
- Текущий обрабатываемый элемент в массиве.
- index
- Индекс текущего обрабатываемого элемента в массиве.
- array
- Массив, по которому осуществляется проход.
- thisArg
- Необязательный параметр. Значение, используемое в качестве
this
при выполнении функцииcallback
. - callback
- Функция, вызывающаяся для каждого значения в масиве, принимает три аргумента:
- element
- Текущий обрабатываемый элемент в массиве.
- index
- Индекс текущего обрабатываемого элемента в массиве.
- array
- Массив, по которому осуществляется проход.
- thisArg
- Необязательный параметр. Значение, используемое в качестве
this
при выполнении функцииcallback
. - callback
- Функция, вызывающаяся для каждого значения в масиве, принимает три аргумента:
- element
- Текущий обрабатываемый элемент в массиве.
- index
- Индекс текущего обрабатываемого элемента в массиве.
- array
- Массив, по которому осуществляется проход.
- thisArg
- Необязательный параметр. Значение, используемое в качестве
this
при выполнении функцииcallback
. - searchElement
- Искомый элемент.
- fromIndex
- Необязательный параметр. Позиция в массиве, с которой начинать поиск элемента searchElement; по умолчанию установлена в 0.
- array
- Обязательный. Объект массива.
- searchElement
Обязательный. Значение, которое требуется найти в array.- fromIndex
- Необязательный. Индекс массива, с которого начинается поиск. Если параметр
fromIndex
опущен, то поиск начинается с индекса 0. - glue
- Строковый аргумент, с помощью которого будут соединены в строку все элементы массива. Если аргумент не задан, элементы будут соединены запятыми.
- array
- Обязательный. Объект массива, в котором выполняется поиск.
- searchElement
- Обязательный. Значение, которое требуется найти в array.
- fromIndex
- Необязательный. Индекс массива, с которого начинается поиск. Если аргумент
fromIndex
опущен, поиск начинается с последнего индекса в массиве. - callback
- Функция, вызывающаяся для каждого значения в масиве, принимает три аргумента:
- element
- Текущий обрабатываемый элемент в массиве.
- index
- Индекс текущего обрабатываемого элемента в массиве.
- array
- Массив, по которому осуществляется проход.
- thisArg
- Необязательный параметр. Значение, используемое в качестве
this
при выполнении функцииcallback
. - elem1, elem2, ...
- Эти элементы будут добавлены в конец массива
- start
- Индекс элемента в массиве, с которого будет начинаться новый массив.
- end
- Необязательный параметр. Индекс элемента в массиве, на котором новый массив завершится. При этом последним в новом массиве будет элемент с индексом
end-1
- Если
start
отрицателен, то он будет трактоваться какarray.length
+start
(т. е.start
'ый элемент с конца массива). - Если end отрицателен, то он будет трактоваться как
array.length
+end
(т.е.end
'ый элемент с конца массива). - Если второй параметр не указан, то экстракция продолжится до конца массива. Если
end
<start
, то будет создан пустой массив. - callback
- Функция проверки каждого элемента, принимает три аргумента:
- currentValue
- Текущий обрабатываемый элемент в массиве.
- index
- Индекс текущего обрабатываемого элемента в массиве.
- array
- Массив, по которому осуществляется проход.
- thisArg
- Необязательный параметр. Значение, используемое в качестве
this
при выполнении функцииcallback
. - sortFunction
- Необязательный параметр - функция сортировки.
- Если указана функция, то элементы массива будут отсортированы согласно значениям, возвращаемых функцией. Условия на функцию можно записать следующим образом:
function sortFunction(a, b){ if(a меньше, чем b по некоторому критерию) return -1 // Или любое число, меньшее нуля if(a больше, чем b по некоторому критерию) return 1 // Или любое число, большее нуля // в случае а = b вернуть 0 return 0 }
- Если параметр не указан, массив будет отсортирован в лексикографическом порядке (возрастающий порядок следования символов в таблице ASCII).
- start
- Индекс в массиве, с которого начинать удаление.
-
deleteCount
-
Кол-во элементов, которое требуется удалить, начиная с индекса start.
- IE: если этот параметр не указан, то ни один элемент не будет удалён.
- Firefox: если этот параметр не указан, то будут удалены все элементы, начиная с индекса start.
- Opera: (исследовано в версии 9.61) если этот параметр не указан, то будут удалён 1 элемент, имеющий индекс start+1. В этом же случае вместо удалённого элемента будет возвращена пустая строка.
- elem1, elem2, ..., elemN
Добавляемые элементы в массив. Добавление начинается с позиции start.- elem1, elem2, ..., elemN
Добавляемые в начало массива элементы. Добавленные элементы сохранят порядок следования.- arrayLike
- Массивоподобный или итерируемый объект, преобразуемый в массив.
- mapFn
- Необязательный. Отображающая функция, вызываемая для каждого элемента массива.
- thisArg
- Необязательный. Значение, используемое в качестве
this
при выполнении функцииmapFn
. - массивоподобных объектов (объектов со свойством
length
и элементами по индексным ключам) или - Итерируемых объектов (объектов, из которых вы можете достать их элементы, например
Map
илиSet
).
Описание
Метод 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])
Параметры
Описание
Метод 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
Совместимость с браузерами
45 | 12,0 | 25 | 7,1 | Нет |
findIndex()
Метод findIndex() возвращает индекс в массиве, если элемент удовлетворяет условию проверяющей функции. В противном случае возвращается -1.
Синтаксис
array.findIndex(callback[, thisArg])
Параметры
Описание
Метод 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
Совместимость с браузерами
45 | 12,0 | 25 | 7,1 | 32,0 |
forEach()
Метод forEach() выполняет указанную функцию один раз для каждого элемента в массиве.
Синтаксис
array.forEach (callback[, thisArg])
Параметры
Описание
Метод 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])
Параметры
Пример
[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,0 | 14,0 | 43 | 9,0 | 34 |
indexOf()
Метод indexOf() возвращает индекс первого вхождения значения в массиве.
Синтаксис
array.indexOf(searchElement[, fromIndex])
Возвращаемое значение
Индекс первого вхождения 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] )
Параметры
Примеры
var arr = [ 1, 2 , 3 ]; alert ( arr.join('+') ); // "1+2+3" alert ( arr.join() ); // "1,2,3"
lastIndexOf()
Метод lastIndexOf() возвращает индекс последнего вхождения указанного значения в массиве.
Синтаксис
array.lastIndexOf(searchElement[, fromIndex])
Параметры
Возвращаемое значение
Индекс последнего вхождения searchElement
в массиве или -1, если searchElement
не найден.
Описание
Метод не работает в Internet Explorer 8.
Метод lastIndexOf
ищет в массиве указанное значение. Метод возвращает индекс первого вхождения или -1, если указанное значение не найдено.
Элементы массива сравниваются со значением 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])
Параметры
Описание
Метод 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, ... )
Возвращаемое значение
Новая длина массива
Параметры
Комментарии
Метод 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] )
Параметры
Комментарии
Данный метод не изменяет исходный массив, а просто возвращает его часть.
Примеры
Элементы из середины
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])
Параметры
Описание
Метод 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,0 | 14,0 | 43 | 9,0 | 34 |
sort()
Метод sort() возвращает объект Array
с упорядоченными элементами.
Синтаксис
array.sort( [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]]]] )
Параметры
Комментарии
Пожалуй, самый комплексный метод для работы с массивом.
Он объединяет в себе две разные функциональности: удаляет часть массива и добавляет новые элементы на место удаленных.
При этом можно свести к нулю количество удаляемых элементов - тогда это будет просто добавление.
И можно не добавлять элементов - тогда это будет просто удаление.
Метод возвращает массив из удаленных элементов.
Примеры
Удаление
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]]]] )
Параметры
Возвращаемое значение
Данный метод изменяет исходный массив. Добавляет в него аргументы и возвращает получившуюся длину.
Пример
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
возвращает примитивное значение массива или примитивное значение его элементов так:
Тип объекта элемента | Тип данных возвращаемого значения |
---|---|
Boolean | Boolean |
Number или Date | number |
Все прочие | 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]])
Параметры
Возвращаемое значение
Новый экземпляр 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);