@StepanMogilyov

Как узнать индекс гласных в слове?

Где ошибка в задаче?

function words(arg1) {
  let letters = 'АаЕеIiOoUuYy'  //Создал переменную со строкой с гласными
  let newArr = [] //Создал пустой массив, в который буду пушить индексы гласных в слове
  for (let i = 0; i < arg1.length; i++)  //Пробегаю циклом по переданному в аргумент слову
  for (let j = 0; j < letters.length; j++) {  //Затем пробегаю по переменной с гласными
    if (arg1[i] == letters[j]) {  //Если элемент слова равен элементу строки с согласными
  newArr.push(arg1[i].indexOf())  //То пушу в массив индексы гласных этого слова
    }
  }
  
  return newArr //Возвращаю массив
}
console.log(words('Apple'))
  • Вопрос задан
  • 511 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Array.from(word.matchAll(/[aeiouy]/gi), n => n.index)

или

[...word.toLowerCase()].reduce((acc, n, i) => ('aeiouy'.includes(n) && acc.push(i), acc), [])

или

Object.entries(word).filter(n => 'AaEeIiOoUuYy'.indexOf(n[1]) !== -1).map(n => +n[0])


Что до говнокода из вопроса...

let letters = 'АаЕеIiOoUuYy'  //Создал переменную со строкой с гласными

Почему символы из разных алфавитов? - первые четыре кириллические.

if (arg1[i] == letters[j]) {  //Если элемент слова равен элементу строки с согласными
  newArr.push(arg1[i].indexOf())  //То пушу в массив индексы гласных этого слова
}

Какой ещё на хрен indexOf (кстати, вы не знаете, что он делает, откройте документацию и разберитесь)? Вот же бред. Что является индексом проверяемого символа? Строчкой выше ещё помнили, а когда до push'а дело дошло, уже забыли? Просто .push(i).

Не ошибка, но упомянуть косячок стоит - после найденного совпадения продолжать крутить внутренний цикл смысла нет. Гуглите, как прервать цикл.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы