Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

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

Array.prototype.includes()

BaselineWidely available

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