lastIndexOf()

优质
小牛编辑
129浏览
2023-12-01

描述 (Description)

Javascript数组lastIndexOf()方法返回可在数组中找到给定元素的最后一个索引,如果不存在,则返回-1。 从fromIndex开始向后搜索数组。

语法 (Syntax)

其语法如下 -

array.lastIndexOf(searchElement[, fromIndex]);

参数细节 (Parameter Details)

  • searchElement - 要在数组中定位的元素。

  • fromIndex - 开始向后搜索的索引。 默认为数组的长度,即将搜索整个数组。 如果索引大于或等于数组的长度,则将搜索整个数组。 如果是负数,则将其作为距离数组末尾的偏移量。

返回值 (Return Value)

返回上一个找到的元素的索引。

兼容性 (Compatibility)

此方法是ECMA-262标准的JavaScript扩展; 因此,它可能不存在于标准的其他实现中。 要使其工作,您需要在脚本的顶部添加以下代码。

if (!Array.prototype.lastIndexOf)
{
   Array.prototype.lastIndexOf = function(elt /*, from*/)
   {
      var len = this.length;
      var from = Number(arguments[1]);
      if (isNaN(from))
      {
         from = len - 1;
      }
      else
      {
         from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
         if (from < 0)
         from += len;
         else if (from >= len)
         from = len - 1;
      }
      for (; from > -1; from--)
      {
         if (from in this &&
         this[from] === elt)
         return from;
      }
      return -1;
   };
}

例子 (Example)

请尝试以下示例。

<html>
   <head>
      <title>JavaScript Array lastIndexOf Method</title>
   </head>
   <body>
      <script type="text/javascript">
         if (!Array.prototype.lastIndexOf)
         {
            Array.prototype.lastIndexOf = function(elt /*, from*/)
            {
               var len = this.length;
               var from = Number(arguments[1]);
               if (isNaN(from))
               {
                  from = len - 1;
               }
               else
               {
                  from = (from < 0)
                  ? Math.ceil(from)
                  : Math.floor(from);
                  if (from < 0)
                  from += len;
                  else if (from >= len)
                  from = len - 1;
               }
               for (; from > -1; from--)
               {
                  if (from in this &&
                  this[from] === elt)
                  return from;
               }
               return -1;
            };
         }
         var index = [12, 5, 8, 130, 44].lastIndexOf(8);
         document.write("index is : " + index ); 
         var index = [12, 5, 8, 130, 44, 5].lastIndexOf(5);
         document.write("<br />index is : " + index ); 
      </script>
   </body>
</html>

输出 (Output)

index is : 2
index is : 5