Бесгласные тролли — Javascript

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++? Вероятно, ошибка новичка. Цените любую помощь.

Переместите return за пределы петли.

Jonas Wilms 05.03.2019 22:12

Кроме того, i <= str.length приведет к ошибке «не на единицу».

VLAZ 05.03.2019 22:13

Кроме того, ваш || должен быть &&.

ziggy wiggy 05.03.2019 22:13

Кроме того, это проще решить с помощью регулярного выражения: return str.replace(/[aeiou]/gi, '');

Christoph Herold 05.03.2019 22:15
function disemvowel(str){ return str.replace(/[aeiou]/gi, ''); }
Ryan Wilson 05.03.2019 22:15

какова цель обучения этой ката?

Nina Scholz 05.03.2019 22:16
const disemvowel = str => str.replace(/[aeiouy]/gi, '');
Quentin Veron 05.03.2019 22:20
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
7
4 933
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Некоторые аннотации:

  • объявить 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('');  
 }

Объясните свой фрагмент...

Honsa Stunna 04.11.2021 09:40

Хотя этот код может ответить на вопрос, было бы лучше включить некоторые контекст, объясняющие как, как он работает, и когда, чтобы его использовать. Ответы, содержащие только код, в долгосрочной перспективе бесполезны.

PCM 04.11.2021 13:31

Другие вопросы по теме