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 相关文章推荐
仿百度的关键词匹配搜索示例
Sep 25 Javascript
纯Javascript实现Windows 8 Metro风格实现
Oct 15 Javascript
jquery实现侧边弹出的垂直导航
Dec 09 Javascript
jQuery中on()方法用法实例
Jan 19 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
Sep 28 Javascript
JavaScript内存泄漏的处理方式
Nov 20 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
Jun 24 Javascript
vue keep-alive 动态删除组件缓存的例子
Nov 04 Javascript
JS错误处理与调试操作实例分析
Apr 13 Javascript
Vuex的热更替如何实现
Jun 05 Javascript
JS相册图片抖动放大展示效果的示例代码
Jan 29 Javascript
JavaScript函数柯里化
Nov 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 中文乱码解决办法总结分析
2009/07/30 PHP
php将日期格式转换成xx天前的格式
2015/04/16 PHP
php中文验证码实现方法
2015/06/18 PHP
PHP压缩图片功能的介绍
2019/03/21 PHP
PHP中的empty、isset、isnull的区别与使用实例
2019/03/22 PHP
laravel5环境隐藏index.php后缀(apache)的方法
2019/10/12 PHP
JavaScript实际应用:innerHTMl和确认提示的使用
2006/06/22 Javascript
IE6下js通过css隐藏select的一个bug
2010/08/16 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
jquery Banner轮播选项卡
2016/12/26 Javascript
Vuejs 2.0 子组件访问/调用父组件的方法(示例代码)
2018/02/08 Javascript
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
vue源码学习之Object.defineProperty对象属性监听
2018/05/30 Javascript
详解基于vue的服务端渲染框架NUXT
2018/06/20 Javascript
JavaScript实用代码小技巧
2018/08/23 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
2018/08/28 Javascript
Vue CLI 3搭建vue+vuex最全分析(推荐)
2018/09/27 Javascript
[02:27]2014DOTA2国际邀请赛 VG赛后采访:更大的挑战在等着我们
2014/07/13 DOTA
用tensorflow实现弹性网络回归算法
2018/01/09 Python
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
用python处理图片实现图像中的像素访问
2018/05/04 Python
pygame编写音乐播放器的实现代码示例
2019/11/19 Python
django框架auth模块用法实例详解
2019/12/10 Python
Python编写memcached启动脚本代码实例
2020/08/14 Python
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
高清屏中使用Canvas绘图出现模糊的问题及解决方法
2019/06/03 HTML / CSS
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
幼师专业求职推荐信
2013/11/08 职场文书
迎接领导欢迎词
2014/01/11 职场文书
教育学习自我评价
2014/02/03 职场文书
《雨霖铃》教学反思
2014/02/22 职场文书
大学中国梦演讲稿
2014/04/23 职场文书
小学生感恩演讲稿
2014/04/25 职场文书
关于redisson缓存序列化几枚大坑说明
2021/08/04 Redis
Apache Kafka 分区重分配的实现原理解析
2022/07/15 Servers
windows10声卡驱动怎么安装?win10声卡驱动安装操作步骤教程
2022/08/05 数码科技