код не проходит тесты, пишет multiples WUB should be replaced by only 1 space: expected 'A B C' to equal 'A B C'
но если я меняю в (*) ' ' на '1', то WUB should be replaced by 1 space: expected 'A1B1C' to equal 'A B C'
то есть '1' добавляется 1 раз, а пробел несколько раз, почему?
мой код
function songDecoder(song){
let wub = 'WUB'
let str = song
let i = 0
while (i < str.length - 2) {
if (str.indexOf(wub) !== -1) {
i = str.indexOf(wub)
str = str.slice(0, i) + ' ' + str.slice(i+3) (*)
}
else i = str.length
}
return str
}
вы хоть саму задачу бы кинули
задача вот https://www.codewars.com/kata/551dc350bf4e526099000ae5/train/javascript
ну это прям сильно проще регулярками делается
меня интересует не решение, а то, почему при одинаковом коде на выходе строки вообще разной длины даже получаются
вас просят по 1 пробелу, у вас по два, в итоге вы два пробелма меняете на "1". это вот то что явно не так) а в самом коде копаться не хочется, мне сложно читать(
я знаю, что не так, вопрос в том, с чего вдруг. я ввожу 1 пробел. если заменить на любой другой символ, все ок, почему пробел двойной...
вы в slice учли, что end не включается?
да. у меня все корректно работает с любым другим символом. и кстати при 1 пробеле он даже на тройной заменяет, по-моему. а вот двойной пробел на двойной. магия какая-то
еле понял логику, если честно хд крч, нет, не работает корректно с другими символами. косяк один везде
да нет, работает, причем в кодпене и с пробелом все ок. какой-то баг кодварс походу
я проверил только что, вам скрины нужны в качестве доказательств или что?
у вас коммент от человека, у которого нет ни одного реплая/лайка (т. е. подтверждения/согласия) и который не прикрепил своё решение, которое может быть ошибочным, очевидно vs. мои слова, что всё работает, которые я могу подтвердить и скинув решение, и кинув скрины так что либо поверьте мне, либо я вам всё-таки кину скрины, раз вы не хотите верить хд
Обсуждают сегодня