試一試
const array = [1, 2, 3];
console.log(array.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
語法
js
includes(searchElement)
includes(searchElement, fromIndex)
引數
searchElement-
要搜尋的值。
fromIndex可選-
開始搜尋的基於零的索引,轉換為整數。
- 負數索引從陣列末尾開始計數 — 如果
-array.length <= fromIndex < 0,則使用fromIndex + array.length。但是,在這種情況下,陣列仍將從前到後進行搜尋。 - 如果
fromIndex < -array.length或省略了fromIndex,則使用0,這將搜尋整個陣列。 - 如果
fromIndex >= array.length,則不搜尋陣列並返回false。
- 負數索引從陣列末尾開始計數 — 如果
返回值
一個布林值,如果值 searchElement 在陣列中(或在指定的 fromIndex 所指示的陣列部分)找到,則為 true。
描述
includes() 方法使用 SameValueZero 演算法將 searchElement 與陣列元素進行比較。零值無論符號如何都被視為相等。(即,-0 等於 0),但 false *不*被視為等於 0。可以正確搜尋 NaN。
當用於 稀疏陣列 時,includes() 方法會將空槽視為 undefined 值進行迭代。
includes() 方法是 通用的。它只期望 this 值具有 length 屬性和整數鍵屬性。
示例
使用 includes()
js
[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。不會搜尋陣列。
js
const arr = ["a", "b", "c"];
arr.includes("c", 3); // false
arr.includes("c", 100); // false
計算出的索引小於 0
如果 fromIndex 為負數,則計算出的索引將被用作陣列中開始搜尋 searchElement 的位置。如果計算出的索引小於或等於 0,則會搜尋整個陣列。
js
// array length is 3
// fromIndex is -100
// computed index is 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。
js
console.log([1, , 3].includes(undefined)); // true
在非陣列物件上呼叫 includes()
includes() 方法讀取 this 的 length 屬性,然後訪問其鍵為小於 length 的非負整數的每個屬性。
js
const arrayLike = {
length: 3,
0: 2,
1: 3,
2: 4,
3: 1, // ignored by includes() since length is 3
};
console.log(Array.prototype.includes.call(arrayLike, 2));
// true
console.log(Array.prototype.includes.call(arrayLike, 1));
// false
規範
| 規範 |
|---|
| ECMAScript® 2026 語言規範 # sec-array.prototype.includes |
瀏覽器相容性
載入中…