Jak generovat náhodná čísla v JavaScriptu

V JavaScriptu můžete použít Math. random() funkce pro generování pseudonáhodného plovoucího čísla mezi 0 (včetně) a 1 (exkluzivní).

const random = Math.random();

console.log(random);
// 0.5362036769798451

Pokud chcete získat náhodné číslo mezi 0 a 20, stačí vynásobit výsledky Math.random() do 20:

const random = Math.random() * 20;

console.log(random);
// 15.40476356200032

Chcete-li vygenerovat náhodné celé číslo, můžete použít následující Math metody spolu s Math.random() :

  • Math.ceil() — Zaokrouhlí číslo nahoru na nejbližší celé číslo
  • Math.floor() — Zaokrouhlí číslo dolů na nejbližší celé číslo
  • Math.round() — Zaokrouhlí číslo na nejbližší celé číslo

Použijme Math.floor() zaokrouhlit plovoucí číslo generované Math.random() na celé číslo:

const random = Math.floor(Math.random() * 20);

console.log(random);
// 12

Nyní jsme se naučili, že jak vygenerovat celé náhodné číslo, napíšeme funkci, která vezme celé číslo jako vstup a vrátí celé číslo mezi 0 a samotným celým číslem:

const random = (max = 50) => {
    return Math.floor(Math.random() * max);
};

console.log(random(100));
// 66

Chcete-li vygenerovat náhodné číslo mezi dvěma konkrétními čísly (min zahrnuto, max vyloučeno), musíme aktualizovat random() metoda jako níže:

const random = (min = 0, max = 50) => {
    let num = Math.random() * (max - min) + min;

    return Math.floor(num);
};

console.log(random(10, 40));
// 28

Ve výše uvedeném kódu jsme použili (max - min) + min abyste se vyhnuli případům, kdy max číslo je menší než min číslo.

Chcete-li vygenerovat náhodné číslo, které obsahuje obě min a max hodnoty, stačí změnit Math.floor() na Math.round() :

const random = (min = 0, max = 50) => {
    let num = Math.random() * (max - min) + min;

    return Math.round(num);
};

console.log(random(10, 70));
// 51