Array.prototype.includes()

Метод includes() з'ясовує, чи масив містить елемент із вказаним значенням, та вертає відповідно true або false.

Синтаксис

arr.includes(valueToFind[, fromIndex])

Параметри

valueToFind
Значення елемента, який слід знайти.

Примітка: При порівнянні рядків та літер, includes() чутливий до регістру.

fromIndex Optional
Позиція у масиві, з якої потрібно починати пошук valueToFind; перша літера шукатиметься за індексом fromIndex, якщо fromIndex є позитивним значенням, або за індексом array.length + fromIndex, якщо fromIndex від'ємний (використовуючи абсолютну величину fromIndex як кількість літер з кінця масиву, де потрібно починати пошук). За замовчуванням дорівнює 0.

Вертає

Значення Boolean, яке дорівнює true, якщо значення valueToFind знайдене у масиві (або у частині масиву, якщо заданий параметр fromIndex). Всі нульові значення вважаються рівними, незалежно від знаку (тому -0 вважатиметься рівним і 0, і +0), але false не вважається тим самим, що й 0.

Примітка: Технічно кажучи, includes() використовує алгоритм sameValueZero для визначення того, чи знайдено заданий елемент.

Приклади

[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

fromIndex більший або дорівнює довжині масиву

Якщо fromIndex дорівнює або перевищує довжину масиву, пошук не здійснюється й завжди вертається false:

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

arr.includes('c', 3);    // вертає false
arr.includes('c', 100);  // вертає false

Обчислений індекс менший за 0

Якщо значення fromIndex від'ємне, використовується обчислений індекс для визначення позиції, з якої починати пошук valueToFind у масиві. Якщо обчислений індекс менший або дорівнює -1 * array.length, пошук здійснюється у всьому масиві.

// Довжина масиву дорівнює 3
// fromIndex дорівнює -100
// Обчислений індекс дорівнює 3 + (-100) = -97

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

arr.includes('a', -100); // true
arr.includes('b', -100); // true
arr.includes('c', -100); // true
arr.includes('a', -2); // false

Застосування includes() як загального метода

Реалізація метода includes() є зумисне узагальненою. Об'єкт, на який вказує this, не обов'язково повинен належати до класу Array, тож використання includes() можна поширити на інші масивоподібні об'єкти. В наведеному нижче прикладі його застосовано до об'єкта arguments:

(function() {
  console.log([].includes.call(arguments, 'a'));  // виводить true
  console.log([].includes.call(arguments, 'd'));  // виводить false
})('a','b','c');

Специфікації

Специфікація Статус Коментар
ECMAScript Latest Draft (ECMA-262)
The definition of 'Array.prototype.includes' in that specification.
Draft
ECMAScript 2016 (ECMA-262)
The definition of 'Array.prototype.includes' in that specification.
Standard Початкова виознака.

Підтримка веб-переглядачами

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
includesChrome Full support 47Edge Full support 14Firefox Full support 43IE No support NoOpera Full support 34Safari Full support 9WebView Android Full support YesChrome Android Full support 47Firefox Android Full support 43Opera Android Full support 34Safari iOS Full support 9Samsung Internet Android Full support Yesnodejs Full support 6.0.0
Full support 6.0.0
Full support 5.0.0
Disabled
Disabled From version 5.0.0: this feature is behind the --harmony runtime flag.

Legend

Full support  
Full support
No support  
No support
User must explicitly enable this feature.
User must explicitly enable this feature.

Див. також