Array.lastIndexOf() 搜尋指定元素

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

 
 

  按個讚!~支持本站!~

FB推薦載入中  

你可能會有興趣的文章