【JavaScript】实现indexOf方法

indexOf()方法是ES5中出现的数组方法,它有两个参数
array.indexOf(value,start)
第一个参数指定要在数组查找的值,第二个可选参数指定开始查找的数组下标。如果省略,则为0。如果数组中存在匹配的值,就返回第一次匹配的数组下标,如果不存在匹配的值,则返回-1。
示例:['a','b','c'].indexOf('a',1) //返回-1

下面我们来自己实现这个方法,并保证其向下兼容性。

var indexof = function(array,value,start){
   if(array == null) return -1;
   var i=0,length = array.length;
   if(start){
       if(typeof start == 'number'){
           // 添加对start为负值时的处理
           i = (start < 0 ? Math.max(0,length+start):start);
        }
   }
   // 如果浏览器支持ES5 indexOf,则直接使用它
   if(Array.prototype.indexOf && array.indexOf === Array.prototype.indexOf){
        return array.indexOf(value,start);
   }
   // 遍历数组
   for(;i<length;i++){
       if(array[i]===value){
           return i;
       }
   }
   return -1;
}
//测试
console.log(indexof([2,4,1,8,5],1,0));//输出2

如此,我们就扩充了indexOf方法,使其在即便不支持的ES5的浏览器也能运行良好。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Javascript有很多数组的方法,有的人有W3C的API,还可以去MDN上去找,但是我觉得API上说的不全,M...
    顽皮的雪狐七七阅读 9,795评论 0 6
  • 由于最近都在freecodecamp上刷代码,运用了很多JavaScript数组的方法,因此做了一份关于JavaS...
    2bc5f46e925b阅读 6,288评论 0 16
  • 第1章 认识JS JavaScript能做什么?1.增强页面动态效果(如:下拉菜单、图片轮播、信息滚动等)2.实现...
    mo默22阅读 5,265评论 0 5
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,906评论 0 4
  • 期货交易市场魅力无穷,但是却遍布危险! 如果你想进入这个地方,请做好必要的心理准备。以下仅是我自己的一点看法,若有...
    林溪amanda阅读 3,741评论 0 7

友情链接更多精彩内容