Здравствуйте.
Начал изучать JavaScript по книге "JavaScript для детей" (автор - Ник Морган).
Никак не разберусь с одной из задач этой книги.
#2. Генератор случайных строкНапишите генератор случайных строк. Для этого вам понадобится строка со всеми буквами алфавита:
var alphabet = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
Чтобы выбирать из этой строки случайную букву, можно использовать примерно такой код:
Math.floor(Math.random() * alphabet .length)
Так вы получите случайный индекс в строке. Затем, воспользовавшись квадратными скобками, можно получить символ по этому индексу.
Начните создавать случайную строку с пустой строки (var randomString = ""). Затем добавьте цикл while и при каждом его повторе добавляйте в строку новый случайный символ — до тех пор, пока длина строки randomstring не превысит шесть символов. Добавлять символ в конец строки можно с помощью оператора +=. После того как цикл закончит работу, выведите получившуюся строку в консоль.
Сначала я написал так:
var alhpabet = "абвгдеёжзийклмнопрстуфчцчшщъыьэюя";
var randomLetter = alhpabet[Math.floor(Math.random() * alhpabet.length)];
var randomString = "";
while (randomString.length < 6) {
randomString += randomLetter;
}
console.log(randomString);
На выходе получаю что-то типа: "ьььььь" или "нннннн", т.е. 6 одинаковых букв - а должны быть все разные.
Если написать код немного по другому (заменив в цикле переменную randomLetter на присвоенное ей значение - alhpabet[Math.floor(Math.random() * alhpabet.length)]):
var alhpabet = "абвгдеёжзийклмнопрстуфчцчшщъыьэюя";
var randomString = "";
while (randomString.length < 6) {
randomString += alhpabet[Math.floor(Math.random() * alhpabet.length)];
}
console.log(randomString);
на выходе получаю, то что надо, например, "епйнчй" или "ковбзё".
Ну никак не пойму, почему в первом случае код не работает должным образом? По сути написано одно и то же.