includes() 和indexOf()方法的使用进阶

includes() 方法检查是否数组包含某些元素,返回 true 或 false ,是ES6的方法,也可以对字符串使用

includes()方法没有区分-0和+0,需要注意

 

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

 

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置(下标)。是ES5的方法,也可以对字符串使用

indexOf() 方法对大小写敏感,需要注意

如果要检索的字符串值没有出现,则该方法返回 -1,需要注意

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

includes使用的是不一样的判断算法,就没有这个问题。

 

 

 

let arr = [1,2,3,4]
console.log(arr.indexOf(5)) // -1
console.log(arr.indexOf(4)) // 3

 

includesindexOf是数组和字符串中常用的方法indexOf方法用于查找指定元素在数组或字符串中的位置索引。如果找到了该元素,则返回元素的索引值;如果未找到该元素,则返回-1。indexOf方法可以接受一个可选的第二个参数,用于指定从哪个索引位置开始查找。 includes方法用于判断数组或字符串是否包含指定元素。如果包含该元素,则返回true;如果不包含该元素,则返回false。includes方法也可以接受一个可选的第二个参数,用于指定从哪个索引位置开始判断。 需要注意的是,indexOf方法不能匹配数组中的NaN,返回结果为-1;而includes方法可以匹配数组中的NaN,返回结果为true。而对于undefined,indexOf方法无法识别稀疏数组中的undefined(返回结果为-1),而includes方法可以识别稀疏数组中的undefined(返回结果为true)。 下面是一些具体的例子来说明它们的使用: 例子1:使用indexOf方法判断数组中是否包含某个元素 ```javascript var arr = [1, 2, 3, 4, 5]; var element = 3; var index = arr.indexOf(element); // index的值为2,表示元素3在数组中的位置索引为2 ``` 例子2:使用includes方法判断数组中是否包含某个元素 ```javascript var arr = [1, 2, 3, 4, 5]; var element = 3; var isIncludes = arr.includes(element); // isIncludes的值为true,表示数组中包含元素3 ``` 例子3:使用indexOf方法判断字符串中是否包含某个子字符串 ```javascript var str = "Hello, world!"; var subStr = "world"; var index = str.indexOf(subStr); // index的值为7,表示子字符串"world"在字符串中的位置索引为7 ``` 例子4:使用includes方法判断字符串中是否包含某个子字符串 ```javascript var str = "Hello, world!"; var subStr = "world"; var isIncludes = str.includes(subStr); // isIncludes的值为true,表示字符串中包含子字符串"world" ``` 总之,indexOf方法用于查找元素的位置索引,includes方法用于判断元素是否存在。两者都可以接受第二个参数来指定起始位置,但对于NaN和undefined的处理上有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值