Array.lastIndexOf() 搜尋指定元素
- 詳細內容
- 分類:Javascript
- 發佈:2013-02-21, 週四 17:02
- 點擊數:1976
Javascript的Array.lastIndexOf()方法:
Array.lastIndexOf()方法是用來由後往前搜尋陣列中的元素,
若是匹配成功則傳回該元素所在位置的索引,失敗則傳回-1。
與indexOf ()方法一樣,lastIndexOf()是使用絕對相等(===)來進行搜尋比對。
也都是ECMA-262第五版中定義的標準方法,但同樣尚未被所有瀏覽器所支援。
Array.lastIndexOf()的語法:
array.lastIndexOf(item,startindex)
item:要在陣列中搜尋的項目。
startindex:起始搜尋索引,由此索引位置開始由後向前搜尋,
若是省略或是超出字串長度則會搜尋整的字串。
傳回值:匹配成功則傳回該元素所在位置的索引,失敗則傳回-1。
Array.lastIndexOf()的範例:
<script type="text/javascript">
var myarr = [1,2,3,4,5,4,3,2,1];
document.writeln(myarr.lastIndexOf (4)+ "<br/>");
document.writeln(myarr.indexOf (4));
</script>
Array.lastIndexOf()的範例輸出:
5
3
Array.lastIndexOf()方法並非所有瀏覽器都支援,可以參考下面程式碼,
利用原型自行新增。
下面這段程式碼來自MDN中的 Array lastIndexOf method:
if (!Array.prototype.lastIndexOf){
Array.prototype.lastIndexOf = function(searchElement /*, fromIndex*/) {
"use strict";
if (this == null)
throw new TypeError();
var t = Object(this);
var len = t.length >>> 0;
if (len === 0) return -1;
var n = len;
if (arguments.length > 1) {
n = Number(arguments[1]);
if (n != n) n = 0;
else if (n != 0 && n != (1 / 0) && n != -(1 / 0)) n = (n > 0 || -1) * Math.floor(Math.abs(n));
}
var k = n >= 0 ? Math.min(n, len - 1) : len - Math.abs(n);
for (; k >= 0; k--) {
if (k in t && t[k] === searchElement) return k;
}
return -1;
};
}
關於Array物件的其他屬性與方法,請參考:陣列物件 Array。
按個讚!~支持本站!~
你可能會有興趣的文章
- Array.join()將陣列元素合併成字串
- Array.indexOf () 搜尋指定元素
- Array.concat() 合併陣列
- 一個for迴圈操作陣列的效率問題
- 陣列物件 Array
- String.valueOf()傳回字串物件的原始值