JavaScript 数组Array-lastIndexOf()方法

时间:2019-08-20 13:50:49  来源:igfitidea点击:

说明

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

语法

array.lastIndexOf(searchElement[, fromIndex]);

参数明细

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

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

返回值

返回最后一个元素的索引。

兼容性

此方法是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;
   };
}

示例

var array = [2, 4, 8, 4, 16, 4, 32];
console.log(array.lastIndexOf());      // -1
console.log(array.lastIndexOf(3));     // -1
console.log(array.lastIndexOf(4));     // 5
console.log(array.lastIndexOf(4, 2));  // 1