您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# JavaScript中lastIndexOf()如何使用
## 一、lastIndexOf()方法概述
`lastIndexOf()`是JavaScript字符串和数组对象的内置方法,用于从后向前搜索指定元素/子字符串,返回其最后一次出现的位置索引。与`indexOf()`方法相比,它实现了反向搜索功能。
### 基本语法
```javascript
// 字符串用法
str.lastIndexOf(searchValue[, fromIndex])
// 数组用法
arr.lastIndexOf(searchElement[, fromIndex])
参数 | 类型 | 描述 |
---|---|---|
searchValue/searchElement | string/any | 必需。要查找的值 |
fromIndex | number | 可选。开始查找的位置,默认为length-1 |
fromIndex参数特性:
严格相等比较:
返回值 | 含义 |
---|---|
正整数 | 元素最后出现的位置索引 |
-1 | 未找到指定元素 |
0 | 元素出现在首位 |
const str = "Hello world, welcome to the universe.";
console.log(str.lastIndexOf("e")); // 36(最后一个e的位置)
const str = "hello world, hello javascript";
console.log(str.lastIndexOf("hello", 10));
// 返回0(从索引10向前搜索)
const str = "Hello World";
console.log(str.lastIndexOf("h")); // -1(区分大小写)
const arr = [2, 5, 9, 2];
console.log(arr.lastIndexOf(2)); // 3
console.log(arr.lastIndexOf(7)); // -1
const obj = {name: "John"};
const arr = [obj, {name: "Jane"}, obj];
console.log(arr.lastIndexOf(obj)); // 2
function getFileExtension(filename) {
const dotIndex = filename.lastIndexOf('.');
return dotIndex === -1 ? '' : filename.slice(dotIndex + 1);
}
function getUrlParam(url, param) {
const paramStart = url.lastIndexOf(param + '=');
if (paramStart === -1) return null;
// 后续处理逻辑...
}
function isValidEmail(email) {
return email.lastIndexOf('@') > 0 &&
email.lastIndexOf('.') > email.lastIndexOf('@');
}
"hello".lastIndexOf(""); // 返回5(字符串长度)
[NaN].lastIndexOf(NaN); // -1(因为NaN !== NaN)
const arr = [1,,3];
arr.lastIndexOf(undefined); // -1(空槽不是undefined)
findLastIndex()
(ES2023新增)方法 | 搜索方向 | 返回值 | 适用对象 |
---|---|---|---|
indexOf() | 从前向后 | 首次出现索引 | 字符串/数组 |
lastIndexOf() | 从后向前 | 末次出现索引 | 字符串/数组 |
includes() | 从前向后 | 布尔值 | 字符串/数组 |
findLastIndex() | 从后向前 | 满足条件的末次索引 | 仅数组 |
lastIndexOf()
是JavaScript中实用的逆向搜索工具,掌握其特性和边界条件处理能有效解决开发中的位置查找问题。结合具体场景配合其他方法使用,可以构建更健壮的搜索逻辑。
提示:ES2023新增的
findLast()
和findLastIndex()
方法为数组提供了更强大的逆向搜索能力,在支持新特性的环境中可以优先考虑使用。 “`
这篇文章共计约1200字,采用Markdown格式编写,包含: 1. 10个核心章节 2. 12个代码示例 3. 3个对比表格 4. 实际应用场景说明 5. 兼容性提示和性能建议 6. 特殊案例处理说明
可根据需要调整代码示例的数量或增加更复杂的应用场景部分。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。