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 不能释放内存.
Sep 07 Javascript
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
Mar 02 Javascript
两个select多选模式的选项相互移动(示例代码)
Jan 11 Javascript
js函数参数设置默认值的一种变通实现方法
May 26 Javascript
javascript省市区三级联动下拉框菜单实例演示
Nov 29 Javascript
canvas绘制万花筒效果(代码分享)
Jan 20 Javascript
微信小程序实现带刻度尺滑块功能
Mar 29 Javascript
bootstrap轮播模板使用方法详解
Nov 17 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
Mar 06 Javascript
Javascript 之封装(Package)
Sep 14 Javascript
vue+layui实现select动态加载后台数据的例子
Sep 20 Javascript
JS设置自定义快捷键并实现图片上下左右移动
Oct 17 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作为Shell脚本语言使用
2006/10/09 PHP
PHP中的cookie
2006/11/26 PHP
PHP 自定义错误处理函数的使用详解
2013/05/10 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
微信支付开发维权通知实例
2016/07/12 PHP
thinkphp5.1框架模板布局与模板继承用法分析
2019/07/19 PHP
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
基于jQuery的history历史记录插件
2010/12/11 Javascript
js字符串的各种格式的转换 ToString,Format
2011/08/08 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
JQuery each()嵌套使用小结
2014/04/18 Javascript
AngularJS 路由详解和简单实例
2016/07/28 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
2016/12/17 Javascript
jQuery自定义图片上传插件实例代码
2017/04/04 jQuery
JavaScript分步实现一个出生日期的正则表达式
2018/03/22 Javascript
ES6基础之默认参数值
2019/02/21 Javascript
实例讲解React 组件
2020/07/07 Javascript
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
Python中生成Epoch的方法
2017/04/26 Python
Pyinstaller将py打包成exe的实例
2018/03/31 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
Python IDE环境之 新版Pycharm安装详细教程
2020/03/05 Python
python+adb+monkey实现Rom稳定性测试详解
2020/04/23 Python
Canvas实现保存图片到本地的示例代码
2018/06/28 HTML / CSS
简洁自适应404页面HTML好看的404源码
2020/12/16 HTML / CSS
德国PC硬件网站:CASEKING
2016/10/20 全球购物
竞职演讲稿范文
2014/01/11 职场文书
高中军训感言400字
2014/02/24 职场文书
交通文明倡议书
2014/05/16 职场文书
总经理任命书范本
2014/06/05 职场文书
2015初中团委工作总结
2015/07/28 职场文书
2016年领导干部廉政承诺书
2016/03/24 职场文书
原生Javascript+HTML5一步步实现拖拽排序
2021/06/12 Javascript
Golang使用Panic与Recover进行错误捕获
2022/03/22 Golang
《总之就是很可爱》新作短篇动画《总之就是很可爱~制服~》将于2022年夏天播出
2022/04/07 日漫