跳到主要内容

JavaScript 数组的 lastIndexOf() 方法详解

lastIndexOf() 方法返回数组中指定元素最后一次出现的索引。

示例

let priceList = [10, 8, 2, 31, 10, 31, 65];

// 查找 31 最后一次出现的索引
let lastIndex = priceList.lastIndexOf(31);

console.log(lastIndex);

// 输出:5

lastIndexOf() 语法

lastIndexOf() 方法的语法为:

arr.lastIndexOf(searchElement, fromIndex);

这里,arr 是一个数组。

lastIndexOf() 参数

lastIndexOf() 方法可以接受 两个 参数:

  • searchElement - 要在数组中查找的元素。
  • fromIndex(可选)- 开始向后搜索的索引。默认为 数组长度 - 1

lastIndexOf() 返回值

lastIndexOf() 方法返回:

  • 如果元素在数组中至少出现一次,则返回该元素在数组中的最后一个索引。
  • 如果在数组中找不到该元素,则返回 -1

注意: lastIndexOf() 使用 严格相等(类似于三等号运算符或 ===)来比较 searchElement 与数组元素。

示例 1:使用 lastIndexOf() 方法

let alphabets = ["a", "b", "c", "a", "d"];

// 查找 'a' 最后一次出现的索引
let lastIndex1 = alphabets.lastIndexOf("a");

console.log(lastIndex1);

// 查找 'e' 最后一次出现的索引
let lastIndex2 = alphabets.lastIndexOf("e");

console.log(lastIndex2);

输出

3
-1

在上面的示例中,我们使用 lastIndexOf() 方法查找 'a''e' 最后一次出现的索引。

'a' 在 alphabets 中最后一次出现的索引是 3,所以 alphabets.lastIndexOf("a") 返回 3

alphabets.lastIndexOf("e") 返回 -1,因为数组中不包含 'e'

示例 2:带两个参数的 lastIndexOf()

let alphabets = ["a", "b", "c", "a", "d", "a"];

// 第二个参数指定开始搜索的索引
// 从该索引向后搜索元素
let lastIndex = alphabets.lastIndexOf("a", 4);

console.log(lastIndex);

输出

3

在上面的示例中,我们在 lastIndexOf() 方法中传递了第二个参数 4

alphabets.lastIndexOf("a", 4) 从索引 4 开始向后搜索 'a',并返回 'a' 的最后一次出现,即 3

示例 3:带负参数的 lastIndexOf()

如果 fromIndex 是一个负数,则索引从后向前计算。例如:

let alphabets = ["a", "b", "c", "a", "d"];

// 从倒数第三个位置开始搜索
let lastIndex = alphabets.lastIndexOf("a", -3);

console.log(lastIndex);

输出

0

这里 alphabets.lastIndexOf("a", -3) 从数组的倒数第三个位置开始搜索,并返回 'a' 的最后一次出现,即 0

推荐阅读: