var a="bananas";
a.lastIndexOf("a",1) /// output is 1
a.lastIndexOf("a",2) /// output is 1
a.lastIndexOf("a",4) /// output is 3
任何人都可以解释一下这两种情况的输出是如何变为1的 我知道它试图从上一端开始匹配,但我无法理解官方文档中的逻辑
答案 0 :(得分:0)
请阅读W3Schools
上有关定义和用法的段落lastIndexOf()方法返回字符串中最后一次出现指定值的位置。
如果要搜索的值永远不会发生,则此方法返回-1。
注意:lastIndexOf()方法区分大小写!
提示:另请参阅indexOf()方法。
<强>语法强>
string.indexOf( searchvalue,start )
参数值
搜索(必需)要搜索的字符串开始
值(可选,默认值:0 )开始的位置搜索
您的例子:
var a = "bananas";
a.lastIndexOf("a",1) // output is 1
a.lastIndexOf("a",4) // output is 3
a.lastIndexOf("a",1)
会搜索最后一个&#39; a&#39;在香蕉中,其指数<= 1。
这意味着它将返回a的最后位置。
所以a.lastIndexOf("a",4)
会搜索最后一个&#39; bana&#39;。
确实有点令人困惑。但请记住, value 参数实际上会修剪给定位置的字符串,因为函数将从该位置向后搜索。
答案 1 :(得分:0)
lastIndexOf()
向后搜索,因此在您的示例中,计数器将如下所示:
b a n a n a s
7 6 5 4 3 2 1
^
.lastIndexOf(&#39; a&#39;,1)将为1,因为从第1位开始,我们首先看到&#39; a&#39;在第1位
b a n a n a s
7 6 5 4 3 2 1
^
3 2 1
.lastIndexOf(&#39; a&#39;,4)将是3,因为从第4位开始,我们首先看到&#39; a&#39;在第3位。
答案 2 :(得分:-1)
lastIndexOf()方法返回字符串中最后一次出现指定值的位置。
定义和用法
string.lastIndexOf(searchvalue, start)
<强>参数强>
searchvalue (必填)要搜索的字符串
start (可选)开始搜索的位置(向后搜索)。如果省略,则默认值为字符串的长度