Array.prototype.includes()

Baseline 已廣泛支援

此功能已相當成熟,可在多種裝置和瀏覽器版本上執行。自 ⁨2016 年 8 月⁩ 起,所有瀏覽器均已提供此功能。

includes() 方法 Array 例項用於確定陣列是否包含某個值,如果包含則返回 true,否則返回 false

試一試

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() 方法讀取 thislength 屬性,然後訪問其鍵為小於 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

瀏覽器相容性

另見