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 相关文章推荐
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
Mar 12 Javascript
Dom 结点创建 基础知识
Oct 01 Javascript
js中style.display=&quot;&quot;无效的解决方法
Oct 30 Javascript
js获取时间并实现字符串和时间戳之间的转换
Jan 05 Javascript
JS实现的另类手风琴效果网页内容切换代码
Sep 08 Javascript
JS实现倒计时(天数、时、分、秒)
Nov 16 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
Mar 28 Javascript
详解vue-cli 脚手架项目-package.json
Jul 04 Javascript
JS实现页面内跳转的简单代码
Sep 03 Javascript
Vue2.0父子组件传递函数的教程详解
Oct 16 Javascript
bootstrap与pagehelper实现分页效果
Dec 29 Javascript
js实现弹幕飞机效果
Aug 27 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
php adodb连接mssql解决乱码问题
2009/06/12 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
2019/10/15 PHP
javascript高亮效果的二种实现方法
2008/09/14 Javascript
js 页面执行时间计算代码
2009/03/04 Javascript
JS 控件事件小结
2012/10/31 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
2014/05/23 Javascript
JS实现模拟风力的雪花飘落效果
2015/05/13 Javascript
JavaScript中的fontsize()方法使用详解
2015/06/08 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
JavaScript中的this机制
2016/01/30 Javascript
JS中对Cookie的操作详解
2016/08/05 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
2016/10/28 Javascript
BootStrap 导航条实例代码
2017/05/18 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
2017/12/01 Javascript
利用JS实现一个同Excel表现的智能填充算法
2018/08/13 Javascript
微信小程序实现图片滚动效果示例
2018/12/05 Javascript
原生js实现抽奖小游戏
2019/06/27 Javascript
Vue中keep-alive的两种应用方式
2020/07/15 Javascript
vue根据条件不同显示不同按钮的操作
2020/08/04 Javascript
[02:43]2014DOTA2国际邀请赛 官方Alliance战队纪录片
2014/07/14 DOTA
linux系统使用python获取内存使用信息脚本分享
2014/01/15 Python
python使用PIL缩放网络图片并保存的方法
2015/04/24 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
python进阶之自定义可迭代的类
2019/08/20 Python
Pytorch数据拼接与拆分操作实现图解
2020/04/30 Python
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
2020/06/02 HTML / CSS
html5指南-5.使用web storage存储键值对的数据
2013/01/07 HTML / CSS
借助HTML5 Canvas API制作一个简单的猜字游戏
2016/03/25 HTML / CSS
html5唤醒APP小记
2019/03/27 HTML / CSS
NFL官方在线商店:NFLShop
2020/07/29 全球购物
全球最大运动品牌的男装、女装和童装官方库存商:A&A Sports
2021/01/17 全球购物
成人大专自我鉴定范文
2013/10/19 职场文书
财务会计专业求职信范文
2013/12/31 职场文书
竞选大学学委演讲稿
2014/09/13 职场文书
结婚老公保证书
2015/02/26 职场文书