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 September 2016.
Array
实例的 includes()
方法确定数组的条目中是否包含某个值,并根据需要返回 true
或 false
。
¥The includes()
method of Array
instances determines whether an array
includes a certain value among its entries, returning true
or
false
as appropriate.
Try it
语法
参数
¥Parameters
searchElement
-
要搜索的值。
fromIndex
Optional-
开始搜索的从零开始的索引,转换为整数。
- 负索引从数组末尾开始倒数 — 如果使用
-array.length <= fromIndex < 0
、fromIndex + array.length
。然而,在这种情况下,仍然从前往后搜索数组。 - 如果省略
fromIndex < -array.length
或fromIndex
,则使用0
,导致搜索整个数组。 - 如果是
fromIndex >= array.length
,则不搜索数组并返回false
。
- 负索引从数组末尾开始倒数 — 如果使用
返回值
描述
¥Description
includes()
方法使用 SameValueZero 算法将 searchElement
与数组的元素进行比较。无论符号如何,零值都被视为相等。(即 -0
等于 0
),但 false
不被认为与 0
相同。可以正确搜索到 NaN
。
¥The includes()
method compares searchElement
to elements of the array using the SameValueZero algorithm. Values of zero are all considered to be equal, regardless of sign. (That is, -0
is equal to 0
), but false
is not considered to be the same as 0
. NaN
can be correctly searched for.
当在 稀疏数组 上使用时,includes()
方法会迭代空槽,就好像它们具有值 undefined
一样。
¥When used on sparse arrays, the includes()
method iterates empty slots as if they have the value undefined
.
includes()
方法是 generic。它只期望 this
值具有 length
属性和整数键控属性。
¥The includes()
method is generic. It only expects the this
value to have a length
property and integer-keyed properties.
示例
使用包含()
fromIndex 大于或等于数组长度
¥fromIndex is greater than or equal to the array length
如果 fromIndex
大于或等于数组长度,则返回 false
。不会搜索该数组。
¥If fromIndex
is greater than or equal to the length of the
array, false
is returned. The array will not be searched.
const arr = ["a", "b", "c"];
arr.includes("c", 3); // false
arr.includes("c", 100); // false
计算出的索引小于 0
¥Computed index is less than 0
如果 fromIndex
为负数,则计算出的索引将用作数组中开始搜索 searchElement
的位置。如果计算出的索引小于或等于 0
,则将搜索整个数组。
¥If fromIndex
is negative, the computed index is calculated to
be used as a position in the array at which to begin searching for
searchElement
. If the computed index is less than or equal to
0
, the entire array will be searched.
// 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()
对非数组对象调用 includes()
¥Calling includes() on non-array objects
includes()
方法读取 this
的 length
属性,然后访问键为小于 length
的非负整数的每个属性。
¥The includes()
method reads the length
property of this
and then accesses each property whose key is a nonnegative integer less than length
.
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
规范
Specification |
---|
ECMAScript Language Specification # sec-array.prototype.includes |
浏览器兼容性
BCD tables only load in the browser