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 利用className得到对象的实现代码
Nov 15 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
May 26 Javascript
JS求平均值的小例子
Nov 29 Javascript
很全面的JavaScript常用功能汇总集合
Jan 22 Javascript
jQuery实现简单倒计时功能的方法
Jul 04 Javascript
WEB前端实现裁剪上传图片功能
Oct 17 Javascript
JQuery 获取多个select标签option的text内容(实例)
Sep 07 jQuery
微信小程序 如何引入外部字体库iconfont的图标
Jan 31 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
Apr 20 Javascript
微信小程序通过保存图片分享到朋友圈功能
May 24 Javascript
详解Node.js读写中文内容文件操作
Oct 10 Javascript
jQuery判断自定义属性data-val用法示例
Jan 07 jQuery
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中通过curl检测页面是否被百度收录
2013/09/27 PHP
php CI框架插入一条或多条sql记录示例
2014/07/29 PHP
php有道翻译api调用方法实例
2014/12/22 PHP
php中动态变量用法实例
2015/06/10 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
2016/05/16 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
2019/01/15 PHP
redis+php实现微博(二)发布与关注功能详解
2019/09/23 PHP
PHP mkdir创建文件夹实现方法解析
2020/11/13 PHP
定义select的边框颜色
2008/04/28 Javascript
input 输入框内的输入事件详细分析
2010/03/17 Javascript
关于IE BUG与字符串截取substr的解决办法
2013/04/10 Javascript
js中数组(Array)的排序(sort)注意事项说明
2014/01/24 Javascript
JS调用页面表格导出excel示例代码
2014/03/18 Javascript
在JavaScript中处理数组之reverse()方法的使用
2015/06/09 Javascript
简述Matlab中size()函数的用法
2016/03/20 Javascript
关于微信中a链接无法跳转问题
2016/08/02 Javascript
移动端点击图片放大特效PhotoSwipe.js插件实现
2016/08/25 Javascript
JavaScript面试题大全(推荐)
2016/09/22 Javascript
canvas实现图像布局填充功能
2017/02/06 Javascript
基于angular2 的 http服务封装的实例代码
2017/06/29 Javascript
详解如何使用webpack打包JS
2018/06/21 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
2018/10/08 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
Python使用multiprocessing创建进程的方法
2015/06/04 Python
python实现将json多行数据传入到mysql中使用
2019/12/31 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
2020/06/02 Python
查看keras各种网络结构各层的名字方式
2020/06/11 Python
卡塔尔航空官方网站:Qatar Airways
2017/02/08 全球购物
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
超市端午节活动方案
2014/01/23 职场文书
大学生学习新党章思想汇报
2014/10/25 职场文书
龙门石窟导游词
2015/02/02 职场文书
2016入党积极分子考察评语
2015/12/01 职场文书
安全生产学习心得体会
2016/01/18 职场文书
2019企业文化管理制度范本!
2019/08/06 职场文书
PHP实现两种排课方式
2021/06/26 PHP