Возвращение рандомного числа JS
допустим у нас есть кнопка, при нажатии на которую, появляется рандомное число, и.т.д, я бы хотел узнать, как при нажатии на вторую кнопку, возвращать предыдущее рандомное число, или такое невозможно???
Ответы (3 шт):
Автор решения: Roman
→ Ссылка
Как вариант можно сохранять числа в массив, и с него брать "предыдущее значение". Возможно не лучший вариант, но в целом работает
const next = document.querySelector('#next')
const prev = document.querySelector('#prev')
const res = document.querySelector('#res')
function randomInteger(min, max) {
let rand = min - 0.5 + Math.random() * (max - min + 1);
return Math.round(rand);
}
const history = []
next.addEventListener('click', () => {
const n = randomInteger(1,100)
history.push(n)
res.textContent = n
})
prev.addEventListener('click', () => {
res.textContent = history[history.length - 2] || 'prev value is missing'
})
<button id='next'>next</button>
<button id='prev'>prev</button>
<p id='res'></p>
Автор решения: Вадим Никитин
→ Ссылка
Как пример
var number = null;
function getRandomInt(max) {
return Math.floor(Math.random() * Math.floor(max));
}
function KeyPress(e) {
if (e.id == 'b1')
number = getRandomInt(10);
else
alert(number);
}
<button id="b1" onclick="KeyPress(this)">Кнопка 1</button>
<button id="b2" onclick="KeyPress(this)">Кнопка 2</button>
Автор решения: CbIPoK2513
→ Ссылка
Вижу это так, кхм
let history = [], // Тут будем хранить историю, где первый элемент всегда _текущий_
historyLength = 1, // Длина истории - сколько записей может поместиться
max = 1000, // Это макс. рандомное значение
// это для элементов
eRand = document.querySelector('#rand'),
eLast = document.querySelector('#last'),
eNum = document.querySelector('#num');
function Random() {
history.unshift(Math.floor(Math.random() * max)); // unshift добавит значение в начало массива, значением является рандомное число от нуля до max
history.length = historyLength+1; // Обрезаем массив до доступной длины (historyLength + ячейка под _текущее_ значение)
eNum.innerText = 'Random: '+history[0]; // Вывод на экран _текущего_ значения
}
// Вещаем на кнопку #rand обработчик на клик, где будем выполнять функцию Random();
eRand.addEventListener('click', function(){
Random();
});
// Тоже вешаем обработчик на клик, но уже на кнопку #last, где будем:
eLast.addEventListener('click', function(){
if(history[1]) // Если последний параметр существует, то:
eNum.innerText += '\nLast: '+history[1]; // Выводим значение на экран.
});
<input type="button" id="rand" value="Random">
<input type="button" id="last" value="Last">
<div id="num"></div>