Вернуть случайное число. Функция не должна возвращать одно и тоже число два раза подряд
Сначала делал так (дичь):
function randomNumWithoutDouble() {
let res = Math.trunc(Math.random() * anything number);
let res1 = res + 1 ;
if (res1 !== res) return res1;
else if (res1 === res1) return (res1 = res1 + 1);
}
console.log(randomNumWithoutDouble());
потом так:
let lastNumber;
function getRandNumDouble() {
let newNum = Math.floor(Math.random() *anything number);
if (newNum === lastNumber) {
return getRandNumDouble();
}
return newNum;
}
function myFunction() {
const number = getRandNumDouble();
lastNumber = number;
return number;
}
console.log(myFunction());
Ответы (1 шт):
Автор решения: Qwertiy
→ Ссылка
const gen = (() => {
let last
return () => {
let res
while ((res = ~~(Math.random() * 3)) === last);
return last = res
}
})()
for (var q=0; q<10; ++q) {
console.log(gen())
}
.as-console-wrapper.as-console-wrapper { max-height: 100vh }