Array.prototype.includes()
Метод includes() (включає) примірників Array визначає, чи містить масив вказане значення серед своїх елементів, і повертає true чи false відповідно до результату.
Спробуйте його в дії
Синтаксис
includes(searchElement)
includes(searchElement, fromIndex)
Параметри
searchElementЗначення для пошуку.
fromIndexНеобов'язковеІндекс від нуля, з якого почнеться пошук, перетворений на ціле число.
- Від'ємний індекс рахується від кінця масиву: якщо
-array.length <= fromIndex < 0, то використовуєтьсяfromIndex + array.length. Проте в такому випадку пошук все одно відбувається від початку до кінця масиву. - Якщо
fromIndex < -array.length, або якщоfromIndexопущено, то використовується0, що призводить до пошуку в усьому масиві. - Якщо
fromIndex >= array.length, то пошук не відбувається, і повертаєтьсяfalse.
- Від'ємний індекс рахується від кінця масиву: якщо
Повернене значення
Булеве значення, яке дорівнює true, якщо значення searchElement було знайдено всередині масиву (або частини масиву, визначеної індексом fromIndex, якщо такий було задано).
Опис
Метод includes() порівнює searchElement з елементами масиву за допомогою алгоритму SameValueZero. Усі нульові значення вважаються рівними, незалежно від свого знаку. (Тобто -0 рівносильно 0), але false не вважається тотожним 0. Може бути виконаний коректний пошук NaN.
Бувши використаним на розріджених масивах, метод includes() ітерує порожні комірки так, ніби вони містять значення undefined.
Метод includes() є узагальненим. Він лишень очікує, що значення this матиме властивість length, а також властивості з цілочисловими ключами.
Приклади
Використання includes()
[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
["1", "2", "3"].includes(3); // false
Якщо fromIndex дорівнює довжині масиву, або більший за неї
У випадку, якщо fromIndex більший або дорівнює довжині масиву – буде повернуто значення false. В такому разі пошук виконуватись не буде.
const arr = ["a", "b", "c"];
arr.includes("c", 3); // false
arr.includes("c", 100); // false
Якщо обчислений індекс менший за 0
Якщо передано від'ємний fromIndex, то обчислений індекс буде обраховано, щоб використати його як позицію елементу в масиві, з якого почнеться пошук searchElement. Якщо ж і обчислений індекс менший або дорівнює 0, буде перевірено весь масив.
// довжина масиву дорівнює 3
// fromIndex дорівнює -100
// обчислений індекс дорівнює 3 + (-100) = -97
const 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() на розріджених масивах
Можна шукати в розрідженому масиві undefined – і отримати true.
console.log([1, , 3].includes(undefined)); // true
Виклик includes() на об'єктах-немасивах
Метод includes() зчитує з this властивість length, а потім звертається до кожної властивості, чий ключ – невід'ємне ціле число, менше за length.
const arrayLike = {
length: 3,
0: 2,
1: 3,
2: 4,
3: 1, // ігнорується includes(), оскільки length – 3
};
console.log(Array.prototype.includes.call(arrayLike, 2));
// true
console.log(Array.prototype.includes.call(arrayLike, 1));
// false
Специфікації
Сумісність із браузерами
| desktop | mobile | server | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
includes
|
Chrome Full support 47 | Edge Full support 14 | Firefox Full support 43 | Internet Explorer No support Ні | Opera Full support 34 | Safari Full support 9 | WebView Android Full support 47 | Chrome Android Full support 47 | Firefox for Android Full support 43 | Opera Android Full support 34 | Safari on iOS Full support 9 | Samsung Internet Full support 5.0 | Deno Full support 1.0 | Node.js Full support 6.0.0 |