为什么JavaScript的indexOf查找混合字母数字数组项返回0
原因解释
Array.prototype.indexOf() 是JavaScript数组的内置方法,规则如下:
- 会按照从左到右的顺序遍历数组,查找和传入参数**严格相等(===)**的元素
- 找到第一个匹配的元素时,直接返回该元素对应的数组索引
- 数组的索引从0开始计数,也就是第一个元素的索引是0,第二个是1,依此类推,找不到匹配项则返回-1
对应你的代码逐一说明:
第一段代码:
var arr = ['E8DB84DCA22F','C44F337FB12D','123456789ABC']; var str = 'E8DB84DCA22F'; console.log(arr.indexOf(str));
数组arr的索引0位置的元素就是你要查找的'E8DB84DCA22F',和str完全匹配,所以返回结果是0。
第二段代码:
var arr2 = ['example','foo','bar']; var str2 = 'foo'; console.log(arr2.indexOf(str2));
数组arr2的索引0位置是'example',不匹配str2,继续查找后,在索引1位置找到匹配的'foo',所以返回结果是1。
内容的提问来源于stack exchange,提问作者HiDayurie Dave
相关产品推荐
相关产品推荐

