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 相关文章推荐
TextArea 控件的最大长度问题(js json)
Dec 16 Javascript
jquery插件推荐 jquery.cookie
Nov 09 Javascript
JS中的Replace方法使用经验分享
May 20 Javascript
jQuery实现点击后标记当前菜单位置(背景高亮菜单)效果
Aug 22 Javascript
JS创建事件的三种方法(实例代码)
May 12 Javascript
JavaScript判断浏览器对CSS3属性是否支持的多种方法
Nov 13 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
Nov 25 Javascript
js canvas实现QQ拨打电话特效
May 10 Javascript
Thinkjs3新手入门之如何使用静态资源目录
Dec 06 Javascript
webpack中如何加载静态文件的方法步骤
May 18 Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
Nov 09 Javascript
原生js 实现表单验证功能
Feb 08 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
获得Google PR值的PHP代码
2007/01/28 PHP
php 文件上传代码(限制jpg文件)
2010/01/05 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
2011/11/25 PHP
PHP钩子与简单分发方式实例分析
2017/09/04 PHP
JS中showModalDialog 的使用解析
2013/04/17 Javascript
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
javascript下拉框选项单击事件的例子分享
2015/03/04 Javascript
jquery实现页面关键词高亮显示的方法
2015/03/12 Javascript
js如何实现淡入淡出效果
2020/11/18 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
2018/11/13 Javascript
[03:52]DOTA2英雄基础教程 酒仙
2013/12/23 DOTA
[01:17:12]职来职往完美电竞专场
2014/09/18 DOTA
[09:13]DOTA2-DPC中国联赛 正赛 Ehome vs Magma 选手采访 1月19日
2021/03/11 DOTA
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
在Django框架中运行Python应用全攻略
2015/07/17 Python
详解如何利用Cython为Python代码加速
2018/01/27 Python
Python创建普通菜单示例【基于win32ui模块】
2018/05/09 Python
Python装饰器语法糖
2019/01/02 Python
python实现拉普拉斯特征图降维示例
2019/11/25 Python
pytorch查看通道数 维数 尺寸大小方式
2020/05/26 Python
python如何随机生成高强度密码
2020/08/19 Python
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
Nicole Miller官方网站:纽约女装品牌
2019/09/14 全球购物
斯图尔特·韦茨曼鞋加拿大官网:Stuart Weitzman加拿大
2019/10/13 全球购物
linux面试题参考答案(11)
2016/11/26 面试题
JVM是一个编译程序还是解释程序
2012/09/11 面试题
擅自离岗检讨书
2014/02/11 职场文书
共产党员承诺书
2014/03/25 职场文书
公司爱心捐款倡议书
2014/05/14 职场文书
党员自我评价2015
2015/03/03 职场文书
《思路决定出路》读后感3篇
2019/12/11 职场文书
vue.js 使用原生js实现轮播图
2022/04/26 Vue.js