javascript中indexOf()和lastIndexOf()详解

ECMAScript5为数组实例添加两方法:indexOf()和lastIndexOf()。这两个方法接受两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中,indexOf()方法从数组的开头(位置0)开始向后查找,lastIndexOf()方法则从数组的末尾开始向前查找。

这两个方法都返回要查找的项在数组中的位置,或者在没有找到的情况下返回-1。在比较第一个参数与数组中的每一项时,会使用全等操作符;也就是说,要求查找的项必须严格相等(就像使用===一样)。

indexOf()和lastIndexOf()基本用法:

 1 <!DOCTYPE HTML>

 2 <html>

 3 <head>

 4 <meta charset="utf-8">

 5 <title>indexOf()和lastIndexOf()</title>

 6 </head>

 7 <body>

 8 <script>

 9 var arry=[2,5,3,4,5,6,1];

10 document.write(arry.indexOf(3));

11 document.write("<br />");

12 document.write(arry.indexOf(5,2));

13 document.write("<br />");

14 document.write(arry.lastIndexOf(6));

15 document.write("<br />");

16 document.write(arry.lastIndexOf(5,3));

17 </script>

18 </body>

19 </html>

上述代码运行结果:

2

4

5

1

使用indexOf()和lastIndexOf()方法查找特定项在数组中的位置非常简单,支持它们的浏览器包括:IE9+、Firefox2+、Safari3+、Opera9.5+和Chrome。

为了能兼容其他版本的主流浏览器,可以按下面这样:

 1 <!DOCTYPE HTML>

 2 <html>

 3 <head>

 4 <meta charset="utf-8">

 5 <title>indexOf()和lastIndexOf()</title>

 6 </head>

 7 

 8 <body>

 9 <script>

10 if(!(Array.prototype.indexOf)){

11     Array.prototype.indexOf=function(val){

12         for(var i=0;i<this.lenth;i++){

13             if(this[i]===val){

14                 return i;

15             }else{

16                 return -1;

17             }

18         }

19         

20     };    

21 }

22 var arry=[2,5,3,4,5,6,1];

23 document.write(arry.indexOf(3));

24 document.write("<br />");

25 document.write(arry.indexOf(5,2));

26 document.write("<br />");

27 document.write(arry.lastIndexOf(6));

28 document.write("<br />");

29 document.write(arry.lastIndexOf(5,3));

30 </script>

31 </body>

32 </html>

 

 

你可能感兴趣的:(JavaScript)