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 相关文章推荐
jQuery 1.0.4 - New Wave Javascript(js源文件)
Jan 15 Javascript
JQuery操作单选按钮以及复选按钮示例
Sep 23 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
Jul 18 Javascript
jQuery操作iframe中js函数的方法小结
Jul 06 Javascript
原生js实现jquery函数animate()动画效果的简单实例
Aug 21 Javascript
jQuery事件用法详解
Oct 06 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
Jan 15 Javascript
js简单实现网页换肤功能
Apr 07 Javascript
vue2.0实现前端星星评分功能组件实例代码
Feb 12 Javascript
详解Vue 全局引入bass.scss 处理方案
Mar 26 Javascript
JS实现字符串中去除指定子字符串方法分析
May 17 Javascript
Vue 组件注册全解析
Dec 17 Vue.js
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微信公众平台配置接口开发程序
2016/09/22 PHP
php批量修改表结构实例
2017/05/24 PHP
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
2010/03/04 Javascript
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
2010/04/13 Javascript
浅谈javascript中的作用域
2012/04/07 Javascript
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
2012/08/09 Javascript
JavaScript获取路径设计源码
2014/05/22 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
完美实现八种js焦点轮播图(上篇)
2016/07/18 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
2017/04/17 jQuery
基于Vue实现支持按周切换的日历
2020/09/24 Javascript
在 Node.js 中使用 async 函数的方法
2017/11/17 Javascript
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
JS实现的贪吃蛇游戏完整实例
2019/01/18 Javascript
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
如何在Vue中使localStorage具有响应式(思想实验)
2020/07/14 Javascript
vue+elementUI实现简单日历功能
2020/09/24 Javascript
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
用Python实现命令行闹钟脚本实例
2016/09/05 Python
python开发利器之ulipad的使用实践
2017/03/16 Python
基于python爬虫数据处理(详解)
2017/06/10 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
淘宝秒杀python脚本 扫码登录版
2019/09/19 Python
Python如何用filter函数筛选数据
2020/03/05 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
Backcountry旗下的户外商品闪购网站:steep&cheap
2016/09/22 全球购物
安踏官方商城:anta.cn
2019/12/16 全球购物
办公室文秘岗位职责
2013/11/15 职场文书
房屋买卖委托书格式范本格式
2014/10/13 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
十大最强飞行系宝可梦,BUG燕上榜,第二是飞行系王者
2022/03/18 日漫
Spring 使用注解开发
2022/05/20 Java/Android