Movatterモバイル変換


[0]ホーム

URL:


  1. 給開發者的 Web 技術文件
  2. JavaScript
  3. JavaScript 參考文件
  4. 標準內建物件
  5. Array
  6. Array.prototype.includes()

此頁面由社群從英文翻譯而來。了解更多並加入 MDN Web Docs 社群。

View in EnglishAlways switch to English

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年8月⁩.

includes() 方法會判斷陣列是否包含特定的元素,並以此來回傳truefalse

嘗試一下

const array1 = [1, 2, 3];console.log(array1.includes(2));// Expected output: trueconst pets = ["cat", "dog", "bat"];console.log(pets.includes("cat"));// Expected output: trueconsole.log(pets.includes("at"));// Expected output: false

語法

arr.includes(searchElement[, fromIndex])

參數

searchElement

要搜尋的元素。

fromIndex選擇性

要於此陣列中開始搜尋searchElement 的位置。如為負數值,則自array.length + fromIndex 開始向後搜尋。預設值為 0。

回傳值

布林值(Boolean)。

範例

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

fromIndex 大於或等於陣列長度

如果fromIndex大於或等於陣列長度, 會回傳false. 此陣列將不會被搜尋.

js
var arr = ["a", "b", "c"];arr.includes("c", 3); // falsearr.includes("c", 100); // false

Computed index is less than 0

IffromIndex is negative, the computed index is calculated to be used as a position in the array at which to begin searching forsearchElement. If the computed index is less than 0, the entire array will be searched.

js
// array length is 3// fromIndex is -100// computed index is 3 + (-100) = -97var arr = ["a", "b", "c"];arr.includes("a", -100); // truearr.includes("b", -100); // truearr.includes("c", -100); // true

includes() used as a generic method

includes() method is intentionally generic. It does not requirethis value to be an Array object, so it can be applied to other kinds of objects (e.g. array-like objects). The example below illustratesincludes() method called on the function'sarguments object.

js
(function () {  console.log([].includes.call(arguments, "a")); // true  console.log([].includes.call(arguments, "d")); // false})("a", "b", "c");

Polyfill

js
// https://tc39.github.io/ecma262/#sec-array.prototype.includesif (!Array.prototype.includes) {  Object.defineProperty(Array.prototype, "includes", {    value: function (searchElement, fromIndex) {      if (this == null) {        throw new TypeError('"this" is null or not defined');      }      // 1. Let O be ? ToObject(this value).      var o = Object(this);      // 2. Let len be ? ToLength(? Get(O, "length")).      var len = o.length >>> 0;      // 3. If len is 0, return false.      if (len === 0) {        return false;      }      // 4. Let n be ? ToInteger(fromIndex).      //    (If fromIndex is undefined, this step produces the value 0.)      var n = fromIndex | 0;      // 5. If n ≥ 0, then      //  a. Let k be n.      // 6. Else n < 0,      //  a. Let k be len + n.      //  b. If k < 0, let k be 0.      var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);      function sameValueZero(x, y) {        return (          x === y ||          (typeof x === "number" &&            typeof y === "number" &&            isNaN(x) &&            isNaN(y))        );      }      // 7. Repeat, while k < len      while (k < len) {        // a. Let elementK be the result of ? Get(O, ! ToString(k)).        // b. If SameValueZero(searchElement, elementK) is true, return true.        if (sameValueZero(o[k], searchElement)) {          return true;        }        // c. Increase k by 1.        k++;      }      // 8. Return false      return false;    },  });}

If you need to support truly obsolete JavaScript engines that don't supportObject.defineProperty, it's best not to polyfillArray.prototype methods at all, as you can't make them non-enumerable.

規範

Specification
ECMAScript® 2026 Language Specification
# sec-array.prototype.includes

瀏覽器相容性

參見

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp