JavaScript中关于indexOf的使用方法与问题小结


Posted in Javascript onAugust 05, 2010

这个方法相当有用,很多编程语言中都有相对应的实现,javascript中也不例外,然而当我在ie中运行如下代码时候:

var arr = [1,2,3]; 
alert(arr.indexOf(1));

却被提示“对象不支持此属性和方法” 。而在chrome,ff下去运行良好。遂去求问google大神,发现原来js中Array的indexOf方法在js1.6版本中才给予了实现,ie7,8中只实现到了js1.3版本,chrome为js1.7版本,ff为js1.8版本。(ie依旧慢半拍)。无奈,只好针对ie进行扩展:
Array.prototype._indexOf = function(n){ 
if("indexOf" in this){ 
return this["indexOf"](n); 
} 
for(var i=0;i<this.length;i++){ 
if(n===this[i]){ 
return i; 
} 
} 
return -1; 
};

使用如下:
var arr = ["1","2","3"]; 
alert(arr._indexOf("2"));

这里我们针对Array的原型进行了扩展,在扩展方法的命名上我加上了"_"字符,我认为这是一个好的习惯,当你在针对原型进行扩展的时候有必要对自己的扩展加以标记。
在_indexOf方法中,我们首先判断当前Array是否实现了"indexOf" 方法,如果是的话直接调用系统发法,否则进行遍历。
Javascript 相关文章推荐
chrome原生方法之数组
Nov 30 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
Jul 03 Javascript
原生Javascript插件开发实践
Jan 18 Javascript
Web技术实现移动监测的介绍
Sep 18 Javascript
使用cropper.js裁剪头像的实例代码
Sep 29 Javascript
JS实现非首屏图片延迟加载的示例
Jan 06 Javascript
详解layui弹窗父子窗口之间传参数的方法
Jan 16 Javascript
vue2.0 下拉框默认标题设置方法
Aug 22 Javascript
10行代码实现微信小程序滑动tab切换
Dec 28 Javascript
JavaScript中将值转换为字符串的五种方法总结
Jun 06 Javascript
详解js中的原型,原型对象,原型链
Jul 16 Javascript
关于React Native 无法链接模拟器的问题
Jun 21 Javascript
js继承的实现代码
Aug 05 #Javascript
一个报数游戏js版(约瑟夫环问题)
Aug 05 #Javascript
JS 实现完美include载入实现代码
Aug 05 #Javascript
使用ExtJS技术实现的拖动树结点
Aug 05 #Javascript
JavaScript 获取当前时间戳的代码
Aug 05 #Javascript
firefox事件处理之自动查找event的函数(用于onclick=foo())
Aug 05 #Javascript
Js获取事件对象代码
Aug 05 #Javascript
You might like
解决phpmyadmin中文乱码问题。。。
2007/01/18 PHP
Windows7下PHP开发环境安装配置图文方法
2010/05/20 PHP
zend框架实现支持sql server的操作方法
2016/12/08 PHP
jquery中的查找parents与closest方法之间的区别
2013/12/02 Javascript
现如今最流行的JavaScript代码规范
2014/03/08 Javascript
JS+CSS实现可拖动的弹出提示框
2015/02/16 Javascript
javascript获得当前的信息的一些常用命令
2015/02/25 Javascript
js实现按钮颜色渐变动画效果
2015/08/20 Javascript
详解js中class的多种函数封装方法
2016/01/03 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
2016/04/08 Javascript
bootstrap table 数据表格行内修改的实现代码
2017/02/13 Javascript
基于pako.js实现gzip的压缩和解压功能示例
2017/06/13 Javascript
使用vue制作FullPage页面滚动效果
2017/08/21 Javascript
使用Angular CLI进行Build(构建)和Serve详解
2018/03/24 Javascript
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
详解微信小程序开发聊天室—实时聊天,支持图片预览
2019/05/20 Javascript
Node 代理访问的实现
2019/09/19 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
2020/10/14 Javascript
Python的迭代器和生成器使用实例
2015/01/14 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
对pandas通过索引提取dataframe的行方法详解
2019/02/01 Python
如何提高python 中for循环的效率
2020/04/15 Python
Python3读写ini配置文件的示例
2020/11/06 Python
css3实现文字扫光渐变动画效果的示例
2017/11/07 HTML / CSS
CSS3中引入多种自定义字体font-face
2020/06/12 HTML / CSS
Opodo英国旅游网站:预订廉价航班、酒店和汽车租赁
2018/07/14 全球购物
医学生个人求职信范文
2014/02/07 职场文书
教师见习期自我鉴定
2014/04/28 职场文书
感恩教育活动总结
2014/05/05 职场文书
2014年国庆节演讲稿
2014/09/19 职场文书
党员检讨书
2014/10/13 职场文书
教师师德师风整改措施
2014/10/24 职场文书
简单的离婚协议书范本
2014/11/16 职场文书
演讲开头怎么书写?
2019/08/06 职场文书
导游词之湖北武当山
2019/09/23 职场文书