【发布时间】:2014-10-10 23:36:55
【问题描述】:
JavaScript 中的string.indexOf() 和string.lastIndexOf() 有什么区别?
var temp = state.indexOf("tmp");
var temp = state.lastIndexOf("tmp");
【问题讨论】:
标签: javascript
JavaScript 中的string.indexOf() 和string.lastIndexOf() 有什么区别?
var temp = state.indexOf("tmp");
var temp = state.lastIndexOf("tmp");
【问题讨论】:
标签: javascript
来自 MDN:
indexOf() 方法返回调用字符串中的索引 指定值第一次出现的对象,lastIndexOf() 方法返回指定值最后一次出现在调用 String 对象中的索引
所以indexOf 将返回该值的第一次出现,lastIndexOf 将返回该值的最后一次出现。
示例(从 MDN 复制):
var anyString = "Brave new world";
var a = anyString.indexOf("w")); // result = 8
var b = anyString.lastIndexOf("w")); // result 10
如果没有找到值,这两个方法都返回 -1
更多:
【讨论】:
string.indexOf() 方法返回指定值在字符串中第一次出现的位置。
string.lastIndexOf() 方法返回指定值在字符串中最后一次出现的位置。
【讨论】:
indexOf() 函数匹配第一次出现,LastindexOf() 函数匹配最后一次出现
这两个函数都用于在 String 或 Array 中查找索引;
String 操作的示例代码
var state = "abcdtmpefgtmp";
var temp =state.indexOf("tmp"); //match first occurance
console.log(temp);
//>4
var temp =state.lastIndexOf("tmp"); //match last occurance
console.log(temp);
//>10
Array 操作的示例代码
var state = ["abc", "tmp", "efg", "tmp"];
var temp =state.indexOf("tmp");
console.log(temp);
//>1
var temp = state.lastIndexOf("tmp");
console.log(temp);
//>3
【讨论】:
lastIndexOf() 方法返回指定值在字符串中最后出现的位置,而 indexOf() 返回指定值在字符串中第一次出现的位置。
在以下示例中:
function myFunction() {
var str = "Hello planet earth, you are a great planet.";
var n = str.lastIndexOf("planet");
var n2 = str.indexOf("planet");
}
n 将返回 36
n2 将返回 6
如果您有任何问题,请告诉我!
【讨论】:
基本上indexOf 和lastIndexOf 是原生javascript 函数。这两个函数都可以在Strings 和Arrays 上应用。
indexOf 返回元素匹配的第一个索引。
另一方面,lastIndexOf 返回元素匹配的最后一个索引。
"myname".indexOf('m') //returns 0
"myname".lastIndexOf('m') //returns 4
【讨论】: