Array.prototype.includes()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since авгÑÑÑ 2016 г..
ÐеÑод includes() ÑкземплÑÑов Array опÑеделÑеÑ, ÑодеÑÐ¶Ð¸Ñ Ð»Ð¸ маÑÑив опÑеделенное знаÑение, возвÑаÑÐ°Ñ true или false.
ÐнÑеÑакÑивнÑй пÑимеÑ
const array1 = [1, 2, 3];
console.log(array1.includes(2));
// Expected output: true
const pets = ["cat", "dog", "bat"];
console.log(pets.includes("cat"));
// Expected output: true
console.log(pets.includes("at"));
// Expected output: 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. ÐÑли вÑÑиÑленнÑй Ð¸Ð½Ð´ÐµÐºÑ Ð¼ÐµÐ½ÑÑе нÑлÑ, Ñо поиÑк бÑÐ´ÐµÑ Ð¿ÑоизводиÑÑÑÑ Ð²Ð¾ вÑÑм маÑÑиве.
// длина маÑÑива Ñавна 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() Ñ Ð¾Ð±ÑекÑов, не ÑвлÑÑÑиÑ
ÑÑ Ð¼Ð°ÑÑивами
ÐеÑод include() ÑÑиÑÑÐ²Ð°ÐµÑ ÑвойÑÑво length Ñ this, а заÑем обÑаÑаеÑÑÑ Ðº ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ ÑвойÑÑвÑ, клÑÑ ÐºÐ¾ÑоÑого пÑедÑÑавлÑÐµÑ Ñобой неоÑÑиÑаÑелÑное Ñелое ÑиÑло, менÑÑее 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
СпеÑиÑикаÑии
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-array.prototype.includes> |