数组新增方法(一)----------Array.includes()函数的用法

两盒软妹~` 提交于 2019-12-03 21:10:49

       在ES5中,Array已经提供了indexOf()用来查找某个元素的位置,indexOf()方法有两个缺点,一是不够语义化,它的含义是找到参数值的第一个出现位置,所以要去比较是否不等于-1,表达起来不够直观。二是,它内部使用严格相等运算符(===)进行判断,这会导致对NaN的误判。

const arr = [1,2,3,4,5,NaN]
console.log(arr.indexOf(1))     //0
console.log(arr.indexOf(7))     //-1
console.log(arr.indexOf(NaN))   //-1

 ES6提供了Array.includes()函数判断是否包含某一元素,解决了indexOf()的上述问题。它直接返回true或者false表示是否包含元素,对NaN一样有效

const arr = [1,2,3,4,5,NaN]
console.log(arr.includes(1))     //true
console.log(arr.includes(7))     //false
console.log(arr.includes(NaN))   //true

该方法的第二个参数表示搜索的起始位置,默认为0。如果第二个参数为负数,则表示倒数的位置,如果这时它大于数组长度(比如第二个参数为-4,但数组长度为3),则会重置为从0开始。

const arr = [1,2,3]
console.log(arr.includes(3,3))     //false
console.log(arr.includes(3,-4))    //true

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!