Сводка
Свойство Array.prototype представляет прототип для конструктора Array.
Атрибуты свойстваArray.prototype |
|
|---|---|
| Записываемое | нет |
| Перечисляемое | нет |
| Настраиваемое | нет |
Описание
Экземпляры Array наследуются от Array.prototype. Как и с остальными конструкторами, вы можете изменять прототип конструктора объекта для применения изменений ко всем экземплярам класса Array.
Небольшой факт: Array.prototype сам является экземпляром Array:
Array.isArray(Array.prototype); // true
Свойства
Array.prototype.constructor- Определяет функцию, создающую прототип объекта.
Array.prototype.length- Отражает количество элементов в массиве.
Методы
Методы изменения
Эти методы изменяют массив:
Array.prototype.copyWithin()- Копирует последовательность элементов массива внутри массива.
Array.prototype.fill()- Заполняет все элементы массива от начального индекса до конечного индекса указанным значением.
Array.prototype.pop()- Удаляет последний элемент из массива и возвращает его.
Array.prototype.push()- Добавляет один или более элементов в конец массива и возвращает новую длину массива.
Array.prototype.reverse()- Переворачивает порядок элементов в массиве — первый элемент становится последним, а последний — первым.
Array.prototype.shift()- Удаляет первый элемент из массива и возвращает его.
Array.prototype.sort()- Сортирует элементы массива на месте и возвращает отсортированный массив.
Array.prototype.splice()- Добавляет и/или удаляет элементы из массива.
Array.prototype.unshift()- Добавляет один или более элементов в начало массива и возвращает новую длину массива.
Методы доступа
Эти методы не изменяют массив, а просто возвращают его в ином представлении.
Array.prototype.concat()- Возвращает новый массив, состоящий из данного массива, соединённого с другим массивом и/или значением (списком массивов/значений).
Array.prototype.includes()- Определяет, содержится ли в массиве указанный элемент, возвращая, соответственно,
trueилиfalse. Array.prototype.join()- Объединяет все элементы массива в строку.
Array.prototype.slice()- Извлекает диапазон значений и возвращает его в виде нового массива.
Array.prototype.toSource()- Возвращает литеральное представление указанного массива; вы можете использовать это значение для создания нового массива. Переопределяет метод
Object.prototype.toSource(). Array.prototype.toString()- Возвращает строковое представление массива и его элементов. Переопределяет метод
Object.prototype.toString(). Array.prototype.toLocaleString()- Возвращает локализованное строковое представление массива и его элементов. Переопределяет метод
Object.prototype.toLocaleString(). Array.prototype.indexOf()- Возвращает первый (наименьший) индекс элемента внутри массива, равный указанному значению; или -1, если значение не найдено.
Array.prototype.lastIndexOf()- Возвращает последний (наибольший) индекс элемента внутри массива, равный указанному значению; или -1, если значение не найдено.
Методы обхода
Некоторые методы принимают в качестве аргументов функции, вызываемые при обработке массива. Когда вызываются эти методы, достаётся длина массива, и любой элемент, добавленный свыше этой длины изнутри функции обратного вызова не посещается. Другие изменения в массиве (установка значения или удаление элемента) могут повлиять на результаты операции, если изменённый элемент метод посещает после изменения. Хотя специфическое поведение этих методов в таких случаях хорошо определено, вы не должны на него полагаться, чтобы не запутывать других людей, читающих ваш код. Если вам нужно изменить массив, лучше вместо этого скопируйте его в новый массив.
Array.prototype.forEach()- Вызывает функцию для каждого элемента в массиве.
Array.prototype.entries()- Возвращает новый объект итератора массива
Array Iterator, содержащий пары ключ / значение для каждого индекса в массиве. Array.prototype.every()- Возвращает
true, если каждый элемент в массиве удовлетворяет условию проверяющей функции. Array.prototype.some()- Возвращает
true, если хотя бы один элемент в массиве удовлетворяет условию проверяющей функции. Array.prototype.filter()- Создаёт новый массив со всеми элементами этого массива, для которых функция фильтрации возвращает
true. Array.prototype.find()- Возвращает искомое значение в массиве, если элемент в массиве удовлетворяет условию проверяющей функции или
undefined, если такое значение не найдено. Array.prototype.findIndex()- Возвращает искомый индекс в массиве, если элемент в массиве удовлетворяет условию проверяющей функции или -1, если такое значение не найдено.
Array.prototype.keys()- Возвращает новый итератор массива, содержащий ключи каждого индекса в массиве.
Array.prototype.map()- Создаёт новый массив с результатами вызова указанной функции на каждом элементе данного массива.
Array.prototype.reduce()- Применяет функцию к аккумулятору и каждому значению массива (слева-направо), сводя его к одному значению.
Array.prototype.reduceRight()- Применяет функцию к аккумулятору и каждому значению массива (справа-налево), сводя его к одному значению.
Array.prototype.values()- Возвращает новый объект итератора массива
Array Iterator, содержащий значения для каждого индекса в массиве. Array.prototype[@@iterator]()- Возвращает новый объект итератора массива
Array Iterator, содержащий значения для каждого индекса в массиве.
Общие методы
Многие методы JavaScript-массива спроектированы таким образом, чтобы иметь возможность применяться ко всем объектам, «выглядящим похоже» на массивы. То есть, они могут использоваться на любом объекте, имеющим свойство length и к элементам которого можно получить доступ через числовые имена свойств (как при индексации: array[5]). TODO: предоставить примеры с Array.prototype.forEach.call и добавлением методов к объекту, как сделано для JavaArray или String. Некоторые методы, например join, только читают свойство length и числовые свойства объекта, на котором они вызываются. Другие, вроде reverse требуют, чтобы числовые свойства и свойство length объекта были изменяемыми; эти методы не могут вызываться на объектах вроде String, которые не позволяют установку своего свойства length или синтезирование числовых свойств.
Спецификации
| Спецификация | Статус | Комментарий |
|---|---|---|
| ECMAScript 1-е издание. | Стандарт | Изначальное определение. |
| ECMAScript 5.1 (ECMA-262) Определение 'Array.prototype' в этой спецификации. |
Стандарт | |
| ECMAScript 6 (ECMA-262) Определение 'Array.prototype' в этой спецификации. |
Кандидат в рекомендации |
Совместимость с браузерами
| Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) |
| Возможность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) | (Да) |