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 30 Javascript
jquery特效 幻灯片效果示例代码
Jul 16 Javascript
jQuery ajax dataType值为text json探索分享
Sep 23 Javascript
DOM基础教程之事件类型
Jan 20 Javascript
js实现下拉框选择要显示图片的方法
Feb 16 Javascript
jQuery对象与DOM对象之间的相互转换
Mar 03 Javascript
jQuery+ajax实现文章点赞功能的方法
Dec 31 Javascript
jQuery获取checkbox选中的值
Jan 28 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
Jan 30 Javascript
js动态生成form 并用ajax方式提交的实现方法
Sep 09 Javascript
微信小程序云开发之模拟后台增删改查
May 16 Javascript
JS实现小星星特效
Dec 24 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后台如何避免用户直接进入方法实例
2013/10/15 PHP
php实现比较两个文件夹异同的方法
2015/06/18 PHP
php数字运算验证码的实现代码
2015/07/30 PHP
微信公众平台DEMO(PHP)
2016/05/04 PHP
浅谈PHP中的数据传输CURL
2016/09/06 PHP
一段利用WSH获取登录时间的jscript代码
2008/05/11 Javascript
Js 时间间隔计算的函数(间隔天数)
2011/11/15 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
使用js画图之圆、弧、扇形
2015/01/12 Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
2016/06/09 Javascript
JavaScript 字符串常用操作小结(非常实用)
2016/11/30 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
vue cli webpack中使用sass的方法
2018/02/24 Javascript
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
D3.js 实现带伸缩时间轴拓扑图的示例代码
2020/01/20 Javascript
Vue强制组件重新渲染的方法讨论
2020/02/03 Javascript
vue 动态给每个页面添加title、关键词和描述的方法
2020/08/28 Javascript
[06:45]DOTA2-DPC中国联赛 正赛 Magma vs LBZS 选手采访
2021/03/11 DOTA
使用Python编写简单网络爬虫抓取视频下载资源
2014/11/04 Python
详解在Python中处理异常的教程
2015/05/24 Python
Python中shape计算矩阵的方法示例
2017/04/21 Python
Python数据结构之单链表详解
2017/09/12 Python
分数霸榜! python助你微信跳一跳拿高分
2018/01/08 Python
python @property的用法及含义全面解析
2018/02/01 Python
python利用smtplib实现QQ邮箱发送邮件
2020/05/20 Python
深入浅析Python 中的sklearn模型选择
2019/10/12 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
关于递归的一道.NET面试题
2013/05/12 面试题
城管大队整治方案
2014/05/06 职场文书
医院竞聘演讲稿
2014/05/16 职场文书
中学生社会实践活动总结
2014/07/03 职场文书
广告业务员岗位职责
2015/02/13 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS
Apache Linkis 中间件架构及快速安装步骤
2022/03/16 Servers