兼容所有浏览器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()方法就介绍到这了。

回复

我来回复
  • 暂无回复内容