1-я неделя в JS и попытка решить первую Ката в CodeWars.
Ваша задача — написать функцию, которая принимает строку и возвращает новую строку, в которой удалены все гласные. Например, строка «Этот сайт для неудачников, LOL!» станет «Ths wbst s fr lsrs LL!».
Мой код:
function disemvowel(str) {
var newStr = "";
for (i = 0; i <= str.length; i++) {
if (str.charAt(i) != "a" || str.charAt(i) != "e" || str.charAt(i) != "i" || str.charAt(i) != "o" || str.charAt(i) != "u") {
newStr += str.charAt(i)
}
return newStr;
}
}Ожидалось: "Ths wbst s fr lsrs LL!", вместо этого было: "T"
Почему мой цикл останавливается? Это не продолжается с i++? Вероятно, ошибка новичка. Цените любую помощь.
Кроме того, i <= str.length приведет к ошибке «не на единицу».
Кроме того, ваш || должен быть &&.
Кроме того, это проще решить с помощью регулярного выражения: return str.replace(/[aeiou]/gi, '');
function disemvowel(str){ return str.replace(/[aeiou]/gi, ''); }какова цель обучения этой ката?
const disemvowel = str => str.replace(/[aeiouy]/gi, '');


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Некоторые аннотации:
i,i < str.length, потому что массивы и строки отсчитываются от нуля,String#includes,String.charAt (он короче),continue оператор for, если символ найден,return заявление в конец функции.function disemvowel(str) {
var newStr = "",
i;
for (i = 0; i < str.length; i++) {
if ("aeiou".includes(str[i].toLowerCase())) continue;
newStr += str[i];
}
return newStr;
}
console.info(disemvowel("This website is for losers LOL!"));let str = ('This website is for losers LOL!'.replace(/A|E|I|O|U|a|e|i|o|u/g, ''))
console.info(str)
Мое решение!
function disemvowel(str) {
let newStr = (str.replace(/A|E|I|O|U|a|e|i|o|u/g, ''))
return newStr;
}
function disemvowel(str) {
return str.match(/[^aeiou]/gi).join('');
}
Объясните свой фрагмент...
Хотя этот код может ответить на вопрос, было бы лучше включить некоторые контекст, объясняющие как, как он работает, и когда, чтобы его использовать. Ответы, содержащие только код, в долгосрочной перспективе бесполезны.
Переместите
returnза пределы петли.