Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как перебрать все буквы в строке в JS без length?

МГ Знаток (357), на голосовании 2 месяца назад
Мне нужно перебрать все буквы. Вот мой код:
 for (let i = 0; i < text1.length; i++) { 
alert(text1[i]);
}
Также пробовала эти 2 варианта:
 let i = str.length; 
while (i--) {
alert(str[i]);
}
 let i = str.length; 
while (i--) {
alert(str.charAt(i));
}
Они тоже не работают.
Подозреваю, что всё дело в length. Попробовала просто вывести длину строки, не получилось.
Подскажите, пожалуйста, как ещё можно перебрать.
Дополнен 3 месяца назад
Я новичок в JS ?, поэтому можно, пожалуйста, с объяснением
Голосование за лучший ответ
Максим Искусственный Интеллект (213104) 3 месяца назад
 const str = 'Вот мой текст'; 
"Не получилось" это не ответ. Нужно просто посмотреть текст ошибки.
МГЗнаток (357) 3 месяца назад
Проблема в том, что не пишется текст ошибки
Максим Искусственный Интеллект (213104) Мария Грязнова, должно писаться. Консоль браузера открой, если ты в браузере код запускаешь.
франциск 1 Просветленный (24678) 3 месяца назад
 [...text1].forEach(x=>alert(x)); 
МГЗнаток (357) 3 месяца назад
Можете, пожалуйста, объяснить ?
франциск 1Просветленный (24678) 3 месяца назад
Сначала строку превращаю в массив операцией спред ... .
Затем каждый элемент массива обрабатываю функцией массива. )
Павел Просветленный (25615) 3 месяца назад
То есть, ты написала код, поняла что он не работает и, не зная причины, решила что причина свойстве length? Я правильно понял?
Если так, то тебе надо задуматься над своим образом мышления.

Всё должно делаться постепенно, так же как программа. Сперва найди проблему а потом её решение а не наоборот.

И так, ты пишешь что "не пишется текст ошибки".
Вопрос - ты знаешь где должен появится текст ошибки?
Ещё в догонку - это действительно ВЕСЬ твой код или всё так и его отрезок?

Если это весь код, то ни в одном варианте не присутствует объявление самой переменной с текстом.
В двух последующих вариантах в первой итерации цикла происходит доступ к несуществующему индексу. Надо не пост-инкремент (i--) а пре-инкремент (--i). Разницу читай в интернете. К тому же, данный код выведет текст задом на перед.

Вот тебе вариант без length:
 const text1 = 'This is some short text!?.'; 
for(let char of text1) alert(char);
Андрей Устинов Мастер (2150) 3 месяца назад
В JS есть методы массивов для перебора элементов: forEach, map. Работают они естественно только на массивах. Преобразуем строку в массив и используем метод forEach
 const string = 'строка'
const stringArray = [...string]
 stringArray.forEach(e => alert(e)) 
Похожие вопросы