"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的结果?
有什么问题?
答案 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