在发布答案时遇到了这个问题,并没有弄清楚为什么会这样。
以下是代码:
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
?
答案 0 :(得分:2)
那是因为你从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