如何在Javascript字符串对象中使用lastIndexOf()方法的第二个参数?

时间:2011-11-05 04:26:39

标签: javascript

"This apple is my apple".lastIndexOf("apple"); // returns value of 17
"This apple is my apple".lastIndexOf("apple",12); // returns value of 5
"This apple is my apple".lastIndexOf("apple", 3); // returns value of -1, not found

大家好!

我理解前两个例子,但为什么第三个不返回5?

indexOf一样,lastIndexOf也会使用可选的第二个参数,这是从右侧开始计算的搜索开始位置的索引值,因此字符串“apple”应与位置5匹配但我仍然得到-1的结果?

有什么问题?

3 个答案:

答案 0 :(得分:3)

lastIndexOf的语法是:

string.lastIndexOf(searchValue[, fromIndex])

其中fromIndex是可选的,表示从中开始查找的索引。但是,搜索是向后,因此从您的示例中的第3位开始,将搜索字符串"This";

答案 1 :(得分:1)

搜索是向后完成的。因此,如果“开始”为3,它将从第四个角色开始并向后工作。这意味着它只会搜索“This”中的s并向后搜索,而不包含“apple”。

答案 2 :(得分:-2)

这里是' 5。 然后计数将从左到右开始,即从单词' heck'开始。现在它将从字母" h"白色空间和字母" t"以及" a"," h"和#34; w。希望它能成为一个场景。如果你把' 4'取代' 5',它输出' -1'因为那时它会从白色空间算起来并写入" t"和#34; a"之后就没有了#34; heck"存在。

var st = 'What heck the heck', 
index = st.lastIndexOf('heck', 5); 
//It goes backward from the number you assigned it