1. Primeiro, vamos analisar o tema e estabelecer os passos lógicos:
1. O comprimento do array é 5 -> para gerar um array vazio arr com comprimento 5 para armazenar o valor.
2. O número aleatório está entre 2-32 -> gera um número inteiro aleatório entre 2-32
3. Use um algoritmo recursivo para gerar valores não repetidos -> julgue se esse número inteiro aleatório já existe no array arr, use o método de iteração de loop de array e não pode usar loops for/while. Se existir, gere novamente o número aleatório rand.
4. Finalmente, produza um array arr com comprimento 5 e sem conteúdo repetido
2. Perceba a lógica passo a passo
1. Uma das maneiras de criar um array: new Array() O número entre colchetes indica o comprimento do array
var arr = new Array(5)
2. Gere um rand inteiro aleatório
var rand = randomNumbers()
function randomNumbers() {
return Math.floor(Math.random() * 31 + 2)
}
Cálculo no intervalo: [nm] ——> Math.floor(Math.random() * (m - n + 1)) + n;
3.
var i = 0; //数组的下标
randomArrs(arr, rand)
function randomArrs(arr, num) {
if (arr.indexOf(num) < 0) { //num不在arr数组中返回-1
arr[i] = num; //将num放入数组中
i++
} else {
num = randomNumbers() //再生成一个随机整数
}
if (i >= arr.length) { //如果数组中够5个整数了
console.log(arr); //输出数组
return
} else {
randomArrs(arr, num) //继续调用此函数,往数组中加整数
}
}