[js] Realizado por algoritmo recursivo, o comprimento do array é 5 e o número aleatório de elementos está entre 2-32 sem repetição de valores

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)  //继续调用此函数,往数组中加整数
  }
}

おすすめ

転載: blog.csdn.net/qq_56715703/article/details/131110239