Array.lastIndexOf() 从后往前查找元素下标
最后更新:2026-10-13
Array.lastIndexOf() 从后往前查找元素下标
lastIndexOf 从数组末尾向前查找指定元素,返回最后一个匹配的下标;找不到返回 -1。使用严格相等(===)比较,因此无法用对象字面量查找对象。
| 分类 | 数组 |
|---|---|
| ES 版本 | ES5(2009) |
📝 语法
数组.lastIndexOf(查找值, 起始下标);
⚙️ 参数
| searchElement | 要查找的值,按严格相等(===)比较。 |
|---|---|
| fromIndex | 可选。从此下标开始向前查找,默认从末尾开始。 |
返回值:最后一个匹配的下标;找不到返回 -1。
是否修改原值:否(返回新值)
▶ 示例
编辑下方代码,点击运行,在输出面板查看结果:
运行结果:
3
1
-1
⚠️ 警告 对象无法用 lastIndexOf 查找:{a:1} === {a:1} 为 false。要按属性找请用 findLastIndex。
💡 提示 NaN 永远匹配不到(NaN === NaN 为 false),需要找 NaN 请用 findLastIndex(Number.isNaN)。
🌐 浏览器支持
| 浏览器 | |||||
|---|---|---|---|---|---|
| Array.lastIndexOf() | ✓ v1 | ✓ v12 | ✓ v1.5 | ✓ v3 | ✓ v10.5 |
| 所有现代浏览器均支持 | |||||
🏷️ 相关数组方法
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
QlastIndexOf 和 indexOf 的区别?
AindexOf 从前往后找第一个匹配;lastIndexOf 从后往前找最后一个匹配。
QfromIndex 传负数会怎样?
A按 arr.length + fromIndex 计算,例如 -2 表示从倒数第二个元素开始向前找。
Q能查找 NaN 吗?
A不能——严格相等下 NaN !== NaN,永远返回 -1。请改用 findLastIndex(Number.isNaN)。