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 相关文章推荐
Javascript学习笔记之 函数篇(二) : this 的工作机制
Jun 24 Javascript
HTML5之WebSocket入门3 -通信模型socket.io
Aug 21 Javascript
跟我学习javascript的prototype原型和原型链
Nov 18 Javascript
微信小程序实现图片轮播及文件上传
Apr 07 Javascript
微信小程序 开发之全局配置
May 05 Javascript
AngularJs 终极购物车(实例讲解)
Nov 08 Javascript
微信小程序实现鼠标拖动效果示例
Dec 01 Javascript
使用angularjs.foreach时return的问题解决
Sep 30 Javascript
详解vuex commit保存数据技巧
Dec 25 Javascript
解决vue单页面应用中动态修改title问题
Jun 09 Javascript
Vue axios 将传递的json数据转为form data的例子
Oct 29 Javascript
html5中sharedWorker实现多页面通信的示例代码
May 07 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介绍篇
2010/10/26 PHP
php常用ODBC函数集(详细)
2013/06/24 PHP
PHP用反撇号执行外部命令
2015/04/14 PHP
PHP引用返回用法示例
2016/05/28 PHP
针对PHP开发安全问题的相关总结
2019/03/22 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
JS 控制CSS样式表
2009/08/20 Javascript
Javascript学习笔记7 原型链的原理
2010/01/11 Javascript
遍历jquery对象的代码分享
2011/11/02 Javascript
日历查询的算法 如何计算某一天是星期几
2012/12/12 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
2013/06/08 Javascript
一个不错的仿携程自定义数据下拉选择select
2014/09/01 Javascript
jQuery过滤选择器用法分析
2015/02/10 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
JS实现日期时间动态显示的方法
2015/12/07 Javascript
VUE多层路由嵌套实现代码
2017/05/15 Javascript
layui数据表格重载实现往后台传参
2019/11/15 Javascript
Python之lambda匿名函数及map和filter的用法
2019/03/05 Python
python元组的概念知识点
2019/11/19 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
2020/02/14 Python
浅析python 字典嵌套
2020/09/29 Python
Python3利用openpyxl读写Excel文件的方法实例
2021/02/03 Python
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
澳大利亚百货公司:David Jones
2018/02/08 全球购物
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
美国折衷生活方式品牌:Robert Graham
2018/07/13 全球购物
面向对象概念面试题(.NET)
2016/11/04 面试题
财务会计专业求职信范文
2013/12/31 职场文书
物业招聘计划书
2014/01/10 职场文书
职位说明书范文
2014/05/07 职场文书
小学班主任个人总结
2015/03/03 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书
新年晚会开场白
2015/05/29 职场文书
《日月潭》教学反思
2016/02/20 职场文书
2019年工作总结范文
2019/05/21 职场文书
position:sticky 粘性定位的几种巧妙应用详解
2021/04/24 HTML / CSS