在 ECMAScript 2016 中,引入了 Array.prototype.includes
方法,用于判断数组中是否包含某个元素。在 ECMAScript 2019 中,该方法进行了升级,增加了第二个参数,用于指定比较的起始位置。本文将详细介绍 Array.prototype.includes
方法的使用场景及其在实际开发中的应用。
语法
---------------------------------------- -----------
searchElement
:要查找的元素。fromIndex
:可选参数,从该位置开始查找。
返回值:如果数组中包含指定的元素,则返回 true
,否则返回 false
。
示例
----- --- - --- -- -- -- --- ----------------------------- -- ---- ----------------------------- -- ----- --------------------------- ---- -- ---- --------------------------- ---- -- -----
在上面的示例中,我们首先定义了一个包含 1~5 的数组 arr
,然后分别使用 includes
方法判断数组中是否包含元素 3 和 6。接着,我们通过传递第二个参数来指定比较的起始位置。在第一个示例中,我们没有传递第二个参数,因此从数组的第一个元素开始查找;在第二个示例中,我们传递了一个不存在的元素 6,因此返回 false
;在第三个示例中,我们传递了第二个参数 2,表示从数组的第三个元素开始查找,最终返回 true
;在第四个示例中,我们传递了第二个参数 3,表示从数组的第四个元素开始查找,由于数组中不存在元素 3,因此返回 false
。
使用场景
判断数组中是否包含某个元素
Array.prototype.includes
方法最常见的使用场景就是判断数组中是否包含某个元素。在实际开发中,我们经常需要根据数组中是否包含某个元素来进行不同的逻辑处理,例如:
----- --- - --- -- -- -- --- -- ----------------- - -------------------- ---- - ---- - --------------------- ---- -
在上面的示例中,我们使用 includes
方法判断数组中是否包含元素 3,并根据判断结果输出不同的信息。
判断数组中是否包含某些元素
除了判断数组中是否包含某个元素,Array.prototype.includes
方法还可以用于判断数组中是否包含某些元素。我们可以通过遍历需要判断的元素,逐个使用 includes
方法进行判断,例如:
----- --- - --- -- -- -- --- ----- --------- - --- -- --- ----- ------ - -------------------- -- -------------------- -------------------- -- -----
在上面的示例中,我们首先定义了一个包含 1~5 的数组 arr
,然后定义了一个需要判断的元素数组 searchArr
,其中包含了元素 2、3 和 6。接着,我们使用 every
方法遍历 searchArr
中的元素,逐个使用 includes
方法判断其是否存在于 arr
数组中。由于 arr
数组中不存在元素 6,因此最终返回 false
。
判断数组中是否包含符合条件的元素
除了判断数组中是否包含某些元素,Array.prototype.includes
方法还可以用于判断数组中是否包含符合条件的元素。我们可以通过遍历数组,逐个使用 includes
方法进行判断,例如:
----- --- - --- -- -- -- --- ----- ------ - ------------- -- ---- - - -- ---- - --- -------------------- -- ----
在上面的示例中,我们使用 some
方法遍历 arr
数组中的元素,逐个使用 includes
方法判断其是否符合条件(大于 3 且小于 6)。由于数组中存在符合条件的元素 4 和 5,因此最终返回 true
。
总结
Array.prototype.includes
方法是 ECMAScript 2016 中引入的一个方法,用于判断数组中是否包含某个元素。在 ECMAScript 2019 中,该方法进行了升级,增加了第二个参数,用于指定比较的起始位置。在实际开发中,我们可以根据该方法的特性,灵活运用,实现不同的功能。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/657bba75d2f5e1655d6602ea