JavaScript lastIndexOf() 语法
lastIndexOf() 是 JavaScript 数组的一个方法,它用于找出指定元素在数组 “最后一次” 出现时的下标。如果指定元素不存在,则返回 -1。
lastIndexOf() 方法是 “从右向左” 进行搜索,因此它返回的是从右边数的第一次出现的下标,也就是从左边数的最后一次出现的下标。
提示: indexOf() 方法是 “从左到右” 进行搜索,而 lastIndexOf() 是 “从右到左” 进行搜索。
语法:
arr.lastIndexOf(value, start)说明:
lastIndexOf() 方法可以接收以下 2 个参数。
value(必选):表示想要查找的元素。start(可选):表示查找的开始下标,默认值为 arr.length-1。- 当 start 省略时,表示搜索整个数组。
- 如果 start 大于或等于数组的长度,则搜索会从数组的最后一个索引处开始。
- 如果 start 是负数,则从数组末尾开始计算索引。例如,-1 表示倒数第一个元素,-2 表示倒数第二个元素,以此类推。
对于 lastIndexOf() 方法,小伙伴们要注意以下几点。
- lastIndexOf() 方法会严格区分大小写。
- lastIndexOf() 方法会使用 “严格相等比较(===)” 来比较 value(查找的值)和数组中的元素。这意味着它不会将 NaN 与 NaN 匹配。
- 如果数组中有多个相同的元素,则 lastIndexOf() 只会返回最后一个匹配到的元素的索引。
提示: 字符串也有 lastIndexOf() 方法,另请参阅:JavaScript 字符串 lastIndexOf() 方法。
JavaScript lastIndexOf() 摘要
| 属于 | JavaScript Array 对象 |
|---|---|
| 使用频率 | 低 |
| 修改原数组 | 否 |
| 官方文档 | 查看 |
| MDN | 查看 |
JavaScript lastIndexOf() 示例
接下来,我们通过几个简单的例子来讲解一下 JavaScript lastIndexOf() 方法是如何使用的。
示例 1:lastIndexOf() 基本用法
const arr = ["红", "绿", "蓝", "绿"];
console.log(arr.lastIndexOf("绿"));
console.log(arr.lastIndexOf("黄"));运行结果如下。
3
-1分析:
虽然 arr 中包含两个 "绿",但 lastIndexOf("绿") 只会返回最后一个的下标(也就是 3)。
示例 2:lastIndexOf() 区分大小写
const arr = ["Python", "C++", "Java", "Go", "Rust"];
console.log(arr.lastIndexOf("Go"));
console.log(arr.lastIndexOf("go"));运行结果如下。
3
-1示例 3:lastIndexOf() 设置查找的开始下标
const arr = ["Python", "C++", "Java", "Go", "Rust"];
console.log(arr.lastIndexOf("Python", 2));
console.log(arr.lastIndexOf("Java", -4));运行结果如下。
0
-1分析:
arr.lastIndexOf("Python", 2) 表示从下标 2 的位置(即第 3 个元素)开始搜索,而 arr.lastIndexOf("Java", -4) 表示从倒数第 4 个元素(即第 2 个元素)开始搜索。
indexOf() 与 lastIndexOf() 的区别
indexOf() 和 lastIndexOf() 这两个方法非常相似,它们之间的区别如下。
- indexOf() 是 “从左到右” 进行搜索,而 lastIndexOf() 是 “从右到左” 进行搜索。
- indexOf() 返回的是指定元素 “第一次” 出现的下标,而 lastIndexOf() 返回的是指定元素 “最后一次” 出现的下标(从右边开始数是第一个)。
示例 4:indexOf() vs lastIndexOf()
const arr = ["Python", "C++", "Java", "Go", "Python", "Rust"];
console.log(arr.indexOf("Python"));
console.log(arr.lastIndexOf("Python"));运行结果如下。
0
4