Math.random的一些使用场景

165 阅读1分钟

Math.random生成的虽然不是真正意义上的随机数,但是在非密码使用场景中,比如在随机颜色、随机图片、字符等场景中,仍然被广泛使用。

Math.random生成一个随机值(生成的值大于等于0小于1)

const x = Math.random()

0 <= x < 1

如果需要x随机生成的值在0和10之间

const x = Math.random() * 10

0 <= x < 10

如果需要x随机生成的值在0和10之间,且必须为整数

const x = Math.floor(Math.random() * 10)

如果需要x随机生成的值在0和n(n>0)之间,且必须为整数

function getRandomVal (number = 1) {
    return Math.floor(Math.random() * number)
}
const x = getRandomVal(10)

如果需要x随机生成的值在min和max之间,且必须为整数

function getRandomBetween (min, max) {
    return max === undefined ? Math.floor(Math.random() * min) : Math.floor(Math.random()*(max - min + 1)) + min
}
const x = getRandomBetween(6, 10)

随机生成颜色RGB

function randomColor () {
    return `#${getRandomBetween(1,255).toString(16)}${getRandomBetween(1,255).toString(16)}${getRandomBetween(1,255).toString(16)}`
}
const color = randomColor()

随机生成单个字符(a-z)

function randomLetter () {
    return getRandomBetween(10,35).toString(36)
}
const letter = randomLetter()

随机生成指定数量的字符

function randomLetters (numberOfLetters) {
    return [...Array(numberOfLetters)].map(randomLetter).join``
}
const letters = randomLetters()