Не понимаю отчего мой JS-код не хочет выводить 10 рандомных чисел, так чтоб текст (заголовок) отсутствовал
Пишу такой javaScript код:
// рандомно число от 0 до 10
function rand() {
return Math.round(Math.random() * 10);
}
// Фунция№2, где выводится тест + 10 рандомных чисел
function get(n) {
let a = 'Случайные числа от 1 до 10<hr>'
for (let k = 1; k <= n; k++) {
a = a + rand();
}
return a;
}
document.write(get(10))
Но когда внутри функции меняю так (думая, что будут только одни рандомные цифры, без текста перед ними):
// рандомно число от 0 до 10
function rand() {
return Math.round(Math.random() * 10);
}
// Фунция№2, где убираю тест + но куда-то исчезли 10 рандомных чисел
function get(n) {
for (let k = 1; k <= n; k++) {
let a = rand();
}
return a;
}
document.write( get (10))
то в итоге такое творчество выдает мне только ОДНО рандомное значение, вместо желаемых 10.
Как и что сменить в коде, чтоб могло выдать только 10 рандомных чисел, без текста впереди (варианты без использования двух function - не принимаются :-) ).
Благодарю, если кто подскажет.
Ответы (1 шт):
Дело в том, что ваш цикл for в первом варианте собирает все значения переменной a в одну строку и выводит, а во втором варианте он пере-присваивает той же переменной другое значение, и отдаёт только последнее. То, что вам нужно это
// рандомно число от 0 до 10
function rand() {
return Math.round(Math.random() * 10);
}
// Функция №2, где убираю тест + но куда-то исчезли 10 рандомных чисел
function get(n) {
let a = '';
for (let k = 1; k <= n; k++) {
a += rand() + '<br>';
}
return a;
}
document.write(get(10))
Так функция возвращает все числа и разделяет их html-элеметом (переносом строки) <br>