刚刚在发布答案时遇到了这个问题,并没有弄清楚为什么会发生这种情况。
这是代码:
var s = "aaaaaX..";
var a = s.slice(1);
a = a.slice( 0, a.lastIndexOf("X") );
var b = s.slice(1).slice( 0, s.lastIndexOf("X") );
var c = s.slice(1).slice( 0, s.lastIndexOf("X") - 1);
console.log(c);
为什么a
不等于b
?
为什么必须添加 -1
以便 c == a
?
最佳答案
这是因为您已从 s
中删除了第一个字符并将其分配给 a
变量。因此,索引比您未删除第一个字符的字符串中的索引低 1。
以下示例将起作用:
var a = s.slice(1);
a = a.slice( 0, s.lastIndexOf("X") );
var b = s.slice(1).slice( 0, s.lastIndexOf("X") );
// a == b
关于javascript - 切片链接 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24253327/