JavaScript数组indexOf方法详解与浏览器兼容方案

作者:木棉

时间:2026-10-30

浏览:88

本文介绍利用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(): 返回数组对象的原始值。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章