Задать вопрос
@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'))
  • Вопрос задан
  • 687 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 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).

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

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

Похожие вопросы