请教JS数组的lastIndexOf()方法在IE下不支持。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教JS数组的lastIndexOf()方法在IE下不支持。相关的知识,希望对你有一定的参考价值。

代码如下:var arrayList  = new Array();arrayList.push('你');arrayList.push('我');arrayList.push('他');arrayList.push('我');alert(arrayList.lastIndexOf('我'));以上代码在Mozilla Firefox没有问题,并能正确显示结果为3。然而在IE8下却报错: "对象不支持此属性或方法"。请问我要在IE8下达到像火狐一样的运行效果,用最简单的方法应该怎么改?IE下支持数组的indexOf()方法为什么不支持lastIndexOf()方法呢?

参考技术A 最后一句这样改下。

arrayList.join('').lastIndexOf('我');
原因如下: indexOf和lastIndexOf对字符串的处理方法兼容所有浏览器,
但是arraryList本身是一个数组对象,对数组对象的indexOf和arrayList方法,IE浏览器都不支持
参考技术B 把下面的代码加入到你的代码前再运行:

Array.prototype.lastIndexOf=function(item)
var len=this.length;
for(var i=len;i>=0;i--)
if(this[i]===item)
return len-i;


return -1;

JS数组之位置方法

位置方法

indexOf()、lastIndexOf()方法都可以接收两个参数:要查找的项、查找起始位置的下标索引。
(the index of XXX => XXX的索引)

indexOf()是从前往后查找,lastIndexOf()是从末尾往前查找。

// indexOf() 返回查找元素的索引
var arr = ["zero",1,"two",3,"four",5,"six",7,"eight",7,6,5,4,3,2,1,0];
console.log(arr.indexOf(1)); // 1
console.log(arr.indexOf("eight")); // 8
// 第二个元素表示,查找的位置
console.log(arr.indexOf(3)); // 3
console.log(arr.indexOf(3, 4)); // 13
// 如果不存在查找元素 返回-1
console.log(arr.indexOf(111)); // -1

// lastIndexOf() 从末尾向前查找
console.log(arr.lastIndexOf(3)); // 13
console.log(arr.lastIndexOf(3, 12)); // 3
console.log(arr.lastIndexOf(222)); // -1

以上是关于请教JS数组的lastIndexOf()方法在IE下不支持。的主要内容,如果未能解决你的问题,请参考以下文章

js数组方法——找出两数组中不相同的元素的集合

JS数组之位置方法

js中数组去重方法总结

请教一个js语法:window.open()在IE中只是打开一个新页面,怎样才能在IE中打开一个新窗口?

Js 数组——filter()map()some()every()forEach()lastIndexOf()indexOf()

Js 数组——filter()map()some()every()forEach()lastIndexOf()indexOf()