#javascript #html
#javascript #HTML
Вопрос:
Я пишу базовый генератор случайных чисел (самообучающийся в freeCodeCamp, собираюсь использовать его для игр с моими двумя маленькими мальчиками). Я использую базовый HTML без добавления CSS в качестве DOM и Javascript на стороне клиента для функции (на стороне клиента, поскольку моему старшему 5 лет, и у нас есть семейный блог, который он любит показывать людям).
Проблема в том, что приведенный ниже код работает до определенной степени — функция Math random работает нормально, она хорошо работает с Math.floor, а умножение * (максимум — минимум 1) работает так, как ожидалось.
Проблема в том, что последний сегмент не работает: минимум. Из результатов, которые я просмотрел, формула генерирует результат с точностью до скобки умножения включительно, но затем конкатенирует минимум в конце, а не добавляет его к результату.
Я преобразовал максимальное и минимальное значения в целые числа через parseInt, когда впервые обнаружил проблему, на случай, если там была проблема (я не понял почему, поскольку они оба отлично работали в скобке умножения), но это, конечно, не имело никакого значения.
function randomNumberFunction(maximum, minimum) {
var numRan;
var maximum = document.getElementById("maximum").value;
var minimum = document.getElementById("minimum").value;
parseInt(maximum);
parseInt(minimum);
numRan = Math.floor(Math.random() * (maximum - minimum 1)) minimum;
alert(numRan);
}
<div id="dice">
<form name="randomDice">
<h1>Get a random number</h1>
<p>Maximum</p>
<input id="maximum" type="number" name="random"><br>
<p>Minimum</p>
<input id="minimum" type="number" name="random"><br>
<br>
<button onclick="randomNumberFunction()">Get a random number</button>
</form>
</div>
Я хочу иметь возможность фиксировать минимальные и максимальные значения, введенные пользователем, и создавать случайное целое число из этого диапазона. Вместо этого я получаю значения типа 01 при вводе min 1, max 4 или 21. или 63 при вводе min 3, max 10.
Комментарии:
1. назначьте синтаксический анализ самой переменной:
minimun = parseInt(minimun)
. Сделайте то же самое дляmaximum
2. Я не знаю, почему это не сработало для меня раньше — идеально. Спасибо, что помогли новичку!
Ответ №1:
Вы не присваиваете значение при приведении минимальных и максимальных переменных
Попробуйте это:
function randomNumberFunction(maximum, minimum) {
var numRan;
var maximum = document.getElementById("maximum").value;
var minimum = document.getElementById("minimum").value;
maximum = parseInt(maximum);
minimum = parseInt(minimum);
numRan = Math.floor(Math.random() * (maximum - minimum 1)) minimum;
alert(numRan);
}