📜  javascript last index - Javascript (1)

📅  最后修改于: 2023-12-03 15:16:05.604000             🧑  作者: Mango

JavaScript last index - JavaScript

在 JavaScript 中,我们经常需要查找一个字符串或数组中的最后一个元素或子字符串的位置,这时就可以用到 lastIndex

字符串中的 lastIndex

在字符串中,lastIndex 表示上一次匹配的子字符串的结束位置。可以通过正则表达式的 exec 方法来获取 lastIndex。例如:

const str = 'hello world';
const regex = /o/g;
let result;

while (result = regex.exec(str)) {
  console.log(result.index); // 输出 4 和 7
  console.log(regex.lastIndex); // 输出 5 和 8
}

在上面的例子中,正则表达式 /o/g 匹配字符串中的所有 o,在第一次匹配时,result.index 等于 4,regex.lastIndex 等于 5,表示下一次匹配的起始位置;在第二次匹配时,result.index 等于 7,regex.lastIndex 等于 8,又表示下一次匹配的起始位置。如果正则表达式不带 g 标志,那么 regex.lastIndex 永远都是 0。

数组中的 lastIndex

在数组中,lastIndex 表示下一次查找的起始位置。可以通过数组的 indexOf 方法或 lastIndexOf 方法来获取 lastIndex。例如:

const arr = [1, 2, 3, 2, 1];
console.log(arr.indexOf(2)); // 输出 1
console.log(arr.lastIndexOf(2)); // 输出 3
console.log(arr.indexOf(2, 2)); // 输出 3
console.log(arr.lastIndexOf(2, 2)); // 输出 1

在上面的例子中,arr.indexOf(2) 返回第一个值为 2 的元素的索引,即 1;arr.lastIndexOf(2) 返回最后一个值为 2 的元素的索引,即 3;arr.indexOf(2, 2) 从第二个位置开始查找值为 2 的元素,返回第一个匹配的索引,即 3;arr.lastIndexOf(2, 2) 从第二个位置开始查找值为 2 的元素,返回最后一个匹配的索引,即 1。如果数组中没有找到匹配的元素,那么这两个方法都返回 -1。