Ця стаття потребує технічного огляду. Як ви можете допомогти.
Ця стаття потребує редакційного огляду. Як ви можете допомогти.
Властивість Array.prototype представляє прототип для конструктора Array.
Property attributes of Array.prototype |
|
|---|---|
| Writable | no |
| Enumerable | no |
| Configurable | no |
Опис
Екземпляри Array успадковуються від Array.prototype. Як і з рештою конструкторів, ви можете змінити прототип конструктора об'єкта, щоб внести зміни у всі екземпляри Array.
Маловідомий факт: Array.prototype сам є екземпляром Array:
Array.isArray(Array.prototype); // true
Властивості
Array.prototype.constructor- Визначає функцію, що створює прототип об'єкта.
Array.prototype.length- Відображає кількість елементів в масиві.
Array.prototype[@@unscopables]- Символ, який містить назви властивостей, які повинні бути виключені з області зв'язування
with.
Методи
Методи модифікації
Ці методи модифікують масив:
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, якщо жодного не знайдено.
Методи повторення
Декілька методів приймають функції у якості аргументів, щоб вони були вікликані у процесі обробки масиву. Коли ці методи викликаються, береться значення властивості length, та будь-які інші елементи, додані понад цієї довжини з функції зворотнього виклику не відвідуються. Інші зміни до масиву (встановлення значення або видалення елементу) можуть впливати на результат операції, якщо згодом метод відвідує зміненний елемент. Хоча певна поведінка цих методів у таких випадках чітко визначена, ви не повинні на це покладатися, щоб не плутати читачів вашого коду. Замість того, щоб змінювати масив масив, скопіюйте його у новий масив.
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 Iterator, який містить ключі для кожного індекса масиву. Array.prototype.map()- Створює новий масив з результатами виклику на кожному елементі масиву наданої функції.
Array.prototype.reduce()- Застосовує функцію над акумулятором та кожним значенням масиву (зліва направо), щоб перетворити його на єдине значення.
Array.prototype.reduceRight()- Застосовує функцію над акумулятором та кожним значенням масиву (справа наліво), щоб перетворити його на єдине значення.
Array.prototype.values()- Повертає новий екземпляр об'єкта
Array Iterator, який містить значення для кожного індекса масиву. Array.prototype[@@iterator]()- Повертає новий екземпляр об'єкта
Array Iterator, який містить значення для кожного індекса масиву.
Загальні методи (нестандартні)
Багато методів JavaScript-масиву спроектовані таким чином, щоб їх можна було застосувати на всіх об'ектах, які "виглядають як" масиви. Таким чином, вони можуть бути використані на будь-якому об'екті, у якого є властивість length, а також ті об'єкти, доступ до яких можна отримати завдяки числовим назвам властивостей (як з індексацією масиву array[5]). Деякі методи, такі як join, мають доступ тільки до length та числовим властивостям об'єкту, на якому вони визвані. Іші, такі як reverse, вимагають, щоб числові властивості об'єкту та length були доступні до редагування; тому ці методи не можуть бути викликані на таких об'єктах як String, який не дозволяє редагувати його властивість length або синтезовані числові властивості.
Специфікації
| Специфікація | Статус | Коментарі |
|---|---|---|
| ECMAScript 1st Edition (ECMA-262) | Standard | Первісне визначення |
| ECMAScript 5.1 (ECMA-262) The definition of 'Array.prototype' in that specification. |
Standard | |
| ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Array.prototype' in that specification. |
Standard | Додані методи copyWithin(), fill(), entries(), keys(), values(), find(), findIndex(). |
| ECMAScript 2017 Draft (ECMA-262) The definition of 'Array.prototype' in that specification. |
Draft | Доданий метод includes(). |
Сумісність з браузерами
| Можливість | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Базова підтримка | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
| Можливість | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Базова підтримка | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |