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>
