MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Array.prototype

Поле Array.prototype представляє собою прототип для конструктора Array і дозволяє вам додавати нові поля і методи до всіх об'єктів-масивів (Array).

// Якщо JavaScript не реалізовує метод first() початково,
// додайте новий метод, який буде повертати перший елемент масиву.

if (!Array.prototype.first) {
  Array.prototype.first = function() {
    return this[0];
  }
}

Опис

Екземпляри Array успадковуються від Array.prototype. Як і з всіх конструкторів, ви можете змінити прототип конструктора об'єкта, щоб внести зміни у всі екземпляри Array. Для прикладу, це використовується для polyfilling.

Маловідомий факт: Array.prototype сам є масивом Array:

Array.isArray(Array.prototype); // true

Property attributes of Array.prototype
Writable no
Enumerable no
Configurable no

Поля

Array.prototype.constructor
Визначає функцію, що створює прототип об'єкта.
Array.prototype.length
Відображає кількість елементів в масиві.
Array.prototype[@@unscopables]
Символ, який містить назви властивостей, які повинні бути виключені з області зв'язування with.

Методи

Методи модифікації

Ці методи модифікують масив:

Array.prototype.copyWithin()
Копіює послідовність елементів масиву всередині масиву.
Array.prototype.fill()
Заповнює всі елементи масиву від початкового індексу до кінцевого статичними значеннями.
Array.prototype.pop()
0Видаляє та повертає останній елемент масиву.
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.indexOf()
Повертає перший (останній) індекс елемента всередині даного масиву, який дорівнює вказаному значенню, або -1 якщо нічого не було знайдено.
Array.prototype.join()
Об'єднує всі елементи масиву у рядок.
Array.prototype.lastIndexOf()
Повертає останній (найбільший) індекс елемента всередині даного масиву, який рівний вказаному значенню, або -1 якщо нічого не було знайдено.
Array.prototype.slice()
Витягує частину масиву та повертає новий масив.
Array.prototype.toSource()
Повертає літерал масиву, який відображає вказаний масив; ви можете використовувати це значення для створення нового масиву. Перевизначає метод Object.prototype.toSource().
Array.prototype.toString()
Повертає рядок, яка відображає даний масив та його елементи. Перевизначає метод Object.prototype.toString().
Array.prototype.toLocaleString()
Повертає локалізований рядок, яка відображає даний масив та його елементи. Перевизначає метод Object.prototype.toLocaleString().

Методи  повторення

Декілька методів приймають функції у якості аргументів, щоб вони були викликані у процесі обробки масиву. Коли ці методи викликаються, довжина поля length вибраного масиву, та будь-які інші елементи, які додані поза цією довжиною зсередини функції-колбеку (callback) не будуть обходитися. Інші зміни до масиву (встановлення значення або видалення елементу) можуть впливати на результат операції, якщо згодом метод буде обходити зміненний елемент. Поки ця специфічна поведінка цих методів у таких випадках є добре визначеною, ви не повинні на це надто покладатися, як і не плутати тих, хто може читати ваш код. Якщо вам необхідно змінити даний масив, скопіюйте його у новий масив.

Array.prototype.entries()
Повертає новий об'єкт Array Iterator, який містить пари ключ/значення для кожного індекса в даному масиві.
Array.prototype.every()
Повертає true, якщо кожен елемент у цьому масиві виконує умови переданої тест-функції.
Array.prototype.filter()
Створює новий масив зі всіма елементами цього масиву, для яких передана функція фільтрації повертае true.
Array.prototype.find()
Повертає знайдене у масиві значення, якщо елемент у цьому масиві виконує умови переданої тест-функції або undefined якщо елемента не знайдено.
Array.prototype.findIndex()
Повертає знайдений у масиві індекс, якщо елемент у цьому масиві виконує умови переданої тест-функції або -1 якщо елемента не знайдено.
Array.prototype.forEach()
Викликає функцію для кожного елементу масиву.
Array.prototype.keys()
Повертає новий об'єкт Array Iterator, який містить ключі для кожного індекса в даному масиві.
Array.prototype.map()
Створює новий масив з результатами виклику на кожному елементі масиву переданої функції.
Array.prototype.reduce()
Застосовує функцію над акумулятором та кожним значенням даного масиву (зліва направо), щоб скоротити його до єдиного значення.
Array.prototype.reduceRight()
Застосовує функцію над акумулятором та кожним значенням даного масиву (справа наліво), щоб скоротити його до єдиного значення.
Array.prototype.some()
Повертає true, якщо принаймні один елемент у цьому масиві виконує умови переданої тест-функції.
Array.prototype.values()
Повертає новий об'єкт Array Iterator, який містить значення для кожного індекса в масиві.
Array.prototype[@@iterator]()
Повертає новий об'єкт Array Iterator, який містить значення для кожного індекса в масиві.

Загальні методи (нестандартні)

Багато методів на JavaScript об'єкті Array спроектовані таким чином, щоб їх можна було застосувати на всіх об'ектах, які "виглядають як" масиви. Таким чином, вони можуть бути використані на будь-якому об'єкті, у якого є поле 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)

Дивіться також

Мітки документа й учасники

 Зробили внесок у цю сторінку: piton13, nesteant
 Востаннє оновлена: piton13,