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 获取Gridview选中行的内容操作步骤
Feb 05 Javascript
用js的document.write输出的广告无阻塞加载的方法
Jun 05 Javascript
jquery中one()方法的用法实例
Jan 16 Javascript
jQuery实现文件上传进度条特效
Aug 12 Javascript
JavaScript函数的调用以及参数传递
Oct 21 Javascript
微信小程序 flex实现导航实例详解
Apr 26 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
May 03 Javascript
js原生代码实现轮播图的实例讲解
Jul 28 Javascript
JS生成随机打乱数组的方法示例
Dec 23 Javascript
基于JavaScript canvas绘制贝塞尔曲线
Dec 25 Javascript
详解微信小程序开发(项目从零开始)
Jun 06 Javascript
浅谈Web Storage API的使用
Jun 23 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
Discuz! Passport 通行证整合
2008/03/27 PHP
使用 PHPStorm 开发 Laravel
2015/03/24 PHP
Twig模板引擎用法入门教程
2016/01/20 PHP
详解WordPress中添加友情链接的方法
2016/05/21 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
2016/06/13 PHP
利用php-cli和任务计划实现订单同步功能的方法
2017/05/03 PHP
laravel框架中间件 except 和 only 的用法示例
2019/07/12 PHP
javascript div 遮罩层封锁整个页面
2009/07/10 Javascript
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
手机平板等移动端适配跳转URL的js代码
2014/01/25 Javascript
玩转方法:call和apply
2014/05/08 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
JavaScript比较两个对象是否相等的方法
2015/02/06 Javascript
[原创]Javascript 实现广告后加载 可加载百度谷歌联盟广告
2016/05/11 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
jQuery+PHP+Ajax实现动态数字统计展示功能
2019/12/25 jQuery
详解JavaScript执行模型
2020/11/16 Javascript
[39:00]Optic vs VP 2018国际邀请赛淘汰赛BO3 第三场 8.24
2018/08/25 DOTA
[59:32]Liquid vs Fnatic 2019国际邀请赛淘汰赛败者组BO1 8.20.mp4
2020/07/19 DOTA
Python实现计算最小编辑距离
2016/03/17 Python
Python3.6实现连接mysql或mariadb的方法分析
2018/05/18 Python
python PrettyTable模块的安装与简单应用
2019/01/11 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
pytorch实现onehot编码转为普通label标签
2020/01/02 Python
Python中 Global和Nonlocal的用法详解
2020/01/20 Python
Python Django中间件使用原理及流程分析
2020/06/13 Python
python使用QQ邮箱实现自动发送邮件
2020/06/22 Python
Pycharm安装python库的方法
2020/11/24 Python
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书
解决Pytorch中关于model.eval的问题
2021/05/22 Python
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python
SQL实现LeetCode(176.第二高薪水)
2021/08/04 MySQL