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 相关文章推荐
Aptana调试javascript图解教程
Nov 30 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
Aug 23 Javascript
原生js实现倒计时功能(多种格式调用)
Jan 12 Javascript
轻松理解JavaScript之AJAX
Mar 15 Javascript
Webpack中css-loader和less-loader的使用教程
Apr 27 Javascript
JS HTML图片显示Canvas 压缩功能
Jul 21 Javascript
vue表单绑定实现多选框和下拉列表的实例
Aug 12 Javascript
原生JS 购物车及购物页面的cookie使用方法
Aug 21 Javascript
浅谈Angular路由守卫
Aug 26 Javascript
JS使用贪心算法解决找零问题示例
Nov 27 Javascript
webpack 从指定入口文件中提取公共文件的方法
Nov 13 Javascript
JS实现点星星消除小游戏
Mar 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代码
2012/07/17 PHP
PHP之短标签开启设置
2013/06/17 PHP
php利用新浪接口查询ip获取地理位置示例
2014/01/20 PHP
PHP输出图像imagegif、imagejpeg与imagepng函数用法分析
2016/11/14 PHP
Laravel框架模型的创建及模型对数据操作示例
2019/05/07 PHP
基于PHP的登录和注册的功能的实现
2020/08/06 PHP
js 动态选中下拉框
2009/11/26 Javascript
javascript 获取页面的高度及滚动条的位置的代码
2010/05/06 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
Node.js文件操作详解
2014/08/16 Javascript
JavaScript中的some()方法使用详解
2015/06/09 Javascript
js实现图片无缝滚动
2015/12/23 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
2017/06/16 Javascript
解决vue中修改export default中脚本报一大堆错的问题
2018/08/27 Javascript
最简单的JS实现json转csv的方法
2019/01/10 Javascript
原生js滑动轮播封装
2020/07/31 Javascript
Python标准库之多进程(multiprocessing包)介绍
2014/11/25 Python
Python中的ctime()方法使用教程
2015/05/22 Python
python3实现爬取淘宝美食代码分享
2018/09/23 Python
Python中常用的内置方法
2019/01/28 Python
Python函数的参数常见分类与用法实例详解
2019/03/30 Python
实现Python与STM32通信方式
2019/12/18 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
2020/01/04 Python
python中使用input()函数获取用户输入值方式
2020/05/03 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
青春无悔演讲稿
2014/05/08 职场文书
庆国庆活动总结
2014/08/28 职场文书
2014年导购员工作总结
2014/11/18 职场文书
销售经理岗位职责
2015/01/31 职场文书
公司中层管理培训心得体会
2016/01/11 职场文书
windows下快速安装nginx并配置开机自启动的方法
2021/05/11 Servers
Windows下用Nginx配置https服务器及反向代理的问题
2021/09/25 Servers
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技