最近在使用javascript数组时,为了获取数组中元素的索引,使用了indexOf.在firefox中调试ok,但是放到ie中,总是出错,无法执行。查查资料,发现原来在ie中不支持indexOf。如果要使用,需要插入下面的一段代码:
if(!Array.indexOf)
{
Array.prototype.indexOf = function(obj)
{
for(var i=0; i<this.length; i++)
{
if(this[i]==obj)
{
return i;
}
}
return -1;
}
}
例如:
var a=new Array( 'morning', 'lunch', 'afternoon', 'night');
var flag_inout = 'lunch'
//for ie can't support indexof
if(!Array.indexOf){
Array.prototype.indexOf = function(obj){
for(var i=0; i<this.length; i++){
if(this[i]==obj){
return i;
}
}
return -1;
}
}
var index_id = a.indexOf(flag_inout);
分享到:
相关推荐
本文介绍了JavaScript中数组的`indexOf()`方法及其在不同浏览器中的兼容性解决方案,并深入探讨了JavaScript对象的属性机制以及如何通过`call`和`apply`方法实现类似继承的功能。掌握这些核心概念对于JavaScript...
在JavaScript中,数组可以使用Array构造函数来创建,或使用[]快速创建,这也是首选的方法。数组是继承自Object的原型,并且他对typeof没有...比如IE8以下的浏览器不支持Array的indexOf方法,为了让数组支持indexOf,我
在标题和描述中提到的bug,就是由于在IE8环境下尝试使用`indexOf`方法而引发的JavaScript错误。 `indexOf`方法的工作原理是这样的:当你在一个数组上调用`indexOf`并传入一个值作为参数,它会返回该值在数组中的第...
JavaScript数组是编程中常见且重要的数据结构,尤其在前端开发中扮演着不可或缺的角色。这篇文章将汇总JavaScript数组的一些常用操作技巧,帮助开发者更好地理解和利用数组功能解决问题。 ### 一、数组的性质 在...
值得注意的是,JavaScript的`Array.prototype.indexOf`方法在某些早期浏览器中可能存在兼容性问题,因此在实际应用中,可以考虑使用ES6的Set数据结构或者使用`Array.prototype.includes`方法来进行去重,这两个方法...
这使得即使在较老的浏览器中,也可以使用indexOf来实现去重逻辑。 6. 方法六:多重循环去重 该方法通过双重循环,对于数组中的每一个元素,与之后的元素进行比较,如果发现重复项,则使用splice方法移除后面的重复...
在JavaScript 1.6版本之前,`indexOf`方法并未在所有浏览器中得到支持,尤其是IE浏览器在IE7和IE8中仅实现了到JavaScript 1.3版本,因此在这些旧版本的IE中尝试使用`indexOf`会抛出错误。相反,Chrome和Firefox等较...
4. **indexOf()**:返回指定元素在数组中首次出现的位置,如果不存在则返回-1。可以指定搜索起始位置。 5. **lastIndexOf()**:返回指定元素在数组中最后一次出现的位置,如果不存在则返回-1。也可以指定搜索起始...
但需要注意的是,该方法依赖于indexOf函数,因此在不支持该函数的旧版浏览器(如IE6/7/8)中将无法正常工作。另外,由于不同浏览器之间sort方法的实现可能存在差异,这也为跨浏览器兼容性带来了挑战。 方法3:利用...
在JavaScript的数组操作中,最常见的是使用indexOf()方法来查找元素在数组中的索引位置。如果元素存在数组中,indexOf()将返回该元素首次出现的索引位置;如果元素不存在,则返回-1。这个方法非常方便,但是需要注意...
JavaScript中的indexOf()方法是一个非常实用的字符串和数组方法,它能够返回指定元素在数组或字符串中首次出现的索引位置。该方法在现代浏览器中被广泛支持,但在一些老旧浏览器,比如IE8中,并不原生支持indexOf()...
- IE6-8没有提供`Array.prototype.indexOf`,可以自定义函数实现。 2. **自定义属性获取** - IE允许在DOM元素上直接添加非标准属性,如`element.selfAttr`,而Firefox则需要通过`element.getAttribute('selfAttr'...
为了兼容IE6-8,我们需要自定义`indexOf`函数,然后在去重方法中使用它。 ```javascript var indexOf = [].indexOf ? function(arr, item) {return arr.indexOf(item);} : function indexOf(arr, item) { for ...
注意点:判断值是否在数组的方法“indexOf”是ECMAScript5 方法,IE8以下不支持,需多写一些兼容低版本浏览器代码,源码如下: // 最简单数组去重法 function unique1(array){ var n = []; //一个新的临时数组 //...
本文将深入探讨JavaScript数组的一些常见操作方法,包括连接、添加、删除、去重以及排序等,通过实例来帮助你理解和掌握这些功能。 1. **数组连接**: 使用`concat()`方法可以连接两个或多个数组。例如: ```...
在Firefox 3.5(支持JavaScript 1.8)中,由于内置了`Array.prototype.indexOf`,所以不会输出这个自定义方法,而在只支持JavaScript 1.3的IE8中,`indexOf`被认为是用户定义的属性。 为了解决这个问题,可以利用...