javascript - 切片链接 JavaScript

标签 javascript chaining

刚刚在发布答案时遇到了这个问题,并没有弄清楚为什么会发生这种情况。

这是代码:

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 变量。因此,索引比您未删除第一个字符的字符串中的索引低 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/

相关文章:

javascript - AngularJS ng-route如何在解析时发出http请求

javascript - 在 React Native 中将 Prop 传递给外部样式表?

等待弹出窗口返回的 Javascript 链接

javascript - 在库中实现 Javascript 链接的最佳方式

javascript - JQuery动画和slideUp延迟问题

javascript - 将弹出窗口置于最前面

javascript - 使用react、react-dom 和react-router 面对@multi 错误

javascript - jQuery 跨标签突出显示元素中的文本片段

javascript - native 警报上的函数引用因调用对象无效而失败

c++ - 与指针相比,链式公共(public)成员访问的性能