JavaScript数组indexOf方法详解与浏览器兼容方案
本文介绍利用JavaScript数组的indexOf方法查找元素索引,并针对IE9以下不支持该方法的浏览器,提供通过扩展Array原型实现的兼容方案,确保代码在不同环境下的可用性。
数组元素索引查找与兼容性处理
在现代浏览器中,若要判断某个元素是否存在于数组内,可以使用Array对象的indexOf()方法获取该元素在数组中的索引位置。如果返回的索引值不等于-1,则说明数组中包含该元素。
具体示例如下所示:
var arr = [2,53,23,'test',9,'array'];
//判断array在不在数组arr中
arr.indexOf('array') !== -1 ? alert('存在') : alert('不存在');
但是IE9以前的版本都不支持此方法,那咱们就只能扩展一个:
代码如下复制代码
Array.prototype.indexOf = function(el){
for (var i=0,n=this.length; i<n; i++){
if (this[i] === el){
return i;
}
}
return -1;
}
接下来我们将测试各浏览器的兼容性,相关代码如下:
var arr = [2,53,23,'test',9,'array'];
if(!Array.indexOf){
Array.prototype.indexOf = function(el){
for (var i=0,n=this.length; i<n; i++){
if (this[i] === el){
return i;
}
}
return -1;
}
}
arr.indexOf('array') !== -1 ? alert('存在') : alert('不存在');
上述代码展示了利用Array的indexOf方法来判断数组中是否包含指定元素的基本用法。
以下是Array对象提供的原生方法列表:
concat(): 用于连接两个或多个数组。 join(): 将数组的所有元素组合成一个字符串。 pop(): 删除并返回数组的最后一个元素。 push(): 向数组末尾添加一个元素,并返回更新后的数组长度。 reverse(): 反转数组中元素的顺序。 shift(): 删除并返回数组的第一个元素。 slice(): 返回选定的元素子集。 sort(): 对数组元素进行排序。 splice(): 删除元素并向数组添加新元素。 toSource(): 返回该对象的源代码字符串。 toString(): 将数组转换为字符串并返回结果。 valueOf(): 返回数组对象的原始值。
JS运算符优先级与结合性的区别是什么?
2026-11-05 13:22:02
JS Map怎么只遍历Key或Value
2026-11-05 13:00:36
D3.js 与 ECharts 选型对比:灵活性 vs 开发效率
2026-11-05 09:45:01
为什么JS中typeof []返回object:数组类型检测误区解析
2026-11-04 19:50:47
D3.js 新手入门:环境搭建与第一个条形图实现
2026-11-04 10:49:48
