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

       在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

 

posted @ 2019-11-06 22:26  SHY13  阅读(381)  评论(0编辑  收藏  举报