切片链接JavaScript



在发表答案时遇到了这个问题,不知道为什么会发生。

代码如下:

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上去?

演示:http://jsfiddle.net/mb974/

这是因为您已经从s中删除了第一个字符并将其分配给a变量。所以index值比没有删除第一个字符的字符串中的index值低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

最新更新