兼容所有浏览器array对象indexOf()方法
分类:实例代码
兼容所有浏览器array对象indexOf()方法属于前端实例代码,有关更多实例代码大家可以查看。
indexOf()方法是ES5中新增,具有一定的浏览器兼容问题。
关于此方法的基本用法可以参阅js数组 indexOf()一章节。
下面就通过代码代码实例分享一段能够兼容所有浏览器的indexOf()方法。
代码实例:
if(!Array.prototype.indexOf){ Array.prototype.indexOf=function(obj,start){ for(var index=(start || 0), j=this.length;index<j;index++){ if(this[index]===obj){ return index; } } return -1; } } var arr=[1,2,3,4,5]; console.log(arr.indexOf(3,1))
上面的代码实现了我们的要求,下面介绍一下它的实现过程。
一.代码注释:
(1).if(!Array.prototype.indexOf){},判断当前浏览器是否支持indexOf()方法。
(2).Array.prototype.indexOf=function(obj,start){},如果不支持,那么就自定义一个indexOf()方法,第一个参数是要查找的元素,第二个参数表示查找的起始位置。
(3).for(var index=(start || 0), j=this.length;index<j;index++){
if(this[index]===obj){
return index;
}
}如果没有传递start参数,那么就是从索引值为0的位置开始查找,也就是第一个位置开始查找。
通过遍历的方式找到指定元素,然后返回索引值。
(4).return -1,没有找到就返回-1。
二.相关阅读:
(1).prototype属性的内容参阅javascript prototype原型一章节。
(2).===参阅javascript的三个等号(===)的作用一章节。
兼容所有浏览器array对象indexOf()方法,这样的场景在实际项目中还是用的比较多的,关于兼容所有浏览器array对象indexOf()方法就介绍到这了。