lastindexof 是数组查找指定元素最后一次出现索引的内置方法,从末尾向前搜索,严格相等比较,未找到返回-1;支持可选起始位置参数,负数表示倒序偏移,适用于数字、字符串等基本类型,但对象按引用匹配。

lastIndexOf 是数组的内置方法,用于查找指定元素在数组中最后一次出现的索引位置,从末尾开始向前搜索。它返回匹配项的索引(从 0 开始),没找到则返回 -1。
基本用法和参数说明
语法:arr.lastIndexOf(searchElement[, fromIndex])
-
searchElement:要查找的值,会进行严格相等(
===)比较 - fromIndex(可选):起始搜索位置,默认是数组长度减 1(即从最后一个元素开始)。如果为负数,表示从末尾往前数的偏移量(如 -1 表示倒数第一个,-2 表示倒数第二个)
常见使用场景示例
例如查找数字 5 在 [1, 5, 3, 5, 2, 5] 中最后一次出现的位置:
const arr = [1, 5, 3, 5, 2, 5]; console.log(arr.lastIndexOf(5)); // 输出 5(最后一个 5 在索引 5)
再比如限制搜索范围:
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
console.log(arr.lastIndexOf(5, 3)); // 输出 3(只查到索引 3 为止,忽略最后那个 5)
对字符串数组也适用:
const colors = ['red', 'blue', 'green', 'blue'];
console.log(colors.lastIndexOf('blue')); // 输出 3
注意区分 indexOf 和 lastIndexOf
indexOf 从开头找第一次出现,lastIndexOf 从末尾找最后一次出现。两者都返回索引或 -1,都不改变原数组。
- 对重复元素,
lastIndexOf更适合定位“末次出现”逻辑,比如撤销操作、去重保留首次/末次等 - 搜索对象或数组时要注意:它们按引用比较,不是按内容。两个结构相同但内存地址不同的对象,
lastIndexOf查不到
处理找不到的情况
始终检查返回值是否为 -1,避免误把 -1 当作有效索引使用:
const idx = arr.lastIndexOf('missing');
if (idx !== -1) {
console.log('找到了,位置是', idx);
} else {
console.log('没找到');
}
也可配合可选链或空值合并简化判断,但核心仍是先确认存在性。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










