Просто столкнулся с этим при отправке ответов и не понял, почему это происходит.Сетчатая цепочка 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/
@cookiemonster Да, вы правы, просто понял, что из себя, но решил не удалять вопрос, как другие могут столкнуться с той же проблемой. :) – Cristy
Потому что 's' в' s.lastIndexOf («X») 'относится к немодифицированным' s', а не 's.slice (1)'. Метод '.slice()' не изменяет оригинал. EDIT: ... извините, моя оригинальная формулировка была неправильной. –