Вставка да sh между двумя гласными в строке - PullRequest
0 голосов
/ 10 января 2020

Мне нужно вставить да sh между двумя гласными, если в моей строке два последовательных гласных, у меня ошибка, так как возвращается ноль.

function insertDash(word) {
  const strWord = word.split('');
  for (let i = 0; i < strWord.length; i += 1) {
    if (strWord[i - 1].includes(/[aeiou]/gi) && strWord[1].includes(/[aeiou]/gi)) {
      strWord.push('-');
    }
  }
  return strWord.join('');
}

insertDash("Thiis is a teest");

Ответы [ 2 ]

1 голос
/ 10 января 2020

У вас много проблем с вашим кодом, как описано в комментариях, но я бы просто попробовал более простой метод. Сделайте что-то вроде этого, и это будет работать без необходимости перебирать символы строки, которая вызывает большинство ваших проблем прямо сейчас:

for (let i = 0; i < str.length; i += 1) {
    str = str.replace(/([aeiou])([aeiou])/g, '$1-$2')
 }
0 голосов
/ 10 января 2020

Вот один подход:

function insertDash(word) {
  const wordArr = word.split('');
  const vowels = ['a', 'e', 'i', 'o', 'u'];

  return wordArr.reduce((sentence, letter, index) => {
    let string = letter;
    if (vowels.includes(letter) && vowels.includes(wordArr[index + 1])) {
      string += '-'
    }

    return `${sentence}${string}`;
  }, '');
}

console.log(insertDash("Thiis is a teest"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...