0
votes

JavaScript pour la vérification de la boucle

Je veux créer une fonction générera un nombre aléatoire entre 0 et 9 qui n'est pas dans la matrice.

mon code jusqu'à présent: xxx

i Voulez-vous revenir seulement 1 numéro. Comment puis-je faire cela?

Merci.


3 commentaires

@karthick Mais comment puis-je vérifier si le numéro est présent dans le tableau? Je veux générer un numéro qui n'est pas dans le tableau.


Ouais désolé n'a pas lu la question correctement


Eh bien inclut retourne booléen, vous devez donc faire quelque chose comme si (! Myarr.Inclut (i)) Retour I C'est tout ce dont vous avez besoin dans pour boucle, si elle quitte l'extérieur, il n'y a pas de nombre possible entre 0-9


6 Réponses :


1
votes
var myArr = [0,2,3,4];
  function newNum(){
     for (var i = 0; i < 10; i++) {
       if (!myArr.includes(i)) {
            return i;
       }
     }
     // return -1 if all numbers present in array..
     return -1;
  }

newNum();

1 commentaires

Ceci semble seulement être une solution partielle car il ne montre pas comment générer un nombre aléatoire entre 0 et 9



3
votes

Quoi de cela?

p>

const invalidValues = [0,2,3,4];

const getRandomInt = (min, max) => {
    min = Math.ceil(min);
    max = Math.floor(max);
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

const getValidRandomInt = (min, max) => {
  while(true) {
    let temp = getRandomInt(min,max)
      if(!invalidValues.includes(temp)) {
        return temp;
      }
  }
}

console.log(getValidRandomInt(0,10))


1 commentaires

Une façon très coûteuse de générer un nombre aléatoire si la distribution n'est que de 0 -9?



0
votes

Générez le numéro dans la plage à l'aide de math.random () code> puis de la boucle et vérifiez si le numéro généré est dans la matrice ou non, sinon dans la matrice renvoie le numéro:

P>

function getRandomArbitrary(min, max, arr) {
  arr = new Set(arr);
  while(true){
      let val =  Math.floor(Math.random() * (max - min) + min);
      if(!arr.has(val)){ return val;}
    }
}
console.log(getRandomArbitrary(0, 10, [4,3,2]));


0 commentaires

0
votes

Réponse:

Utilisez math.random () * (max - min) + min code> pour obtenir un numéro dans une plage. P>

Vous pouvez le envelopper avec math.floor code> pour arrondi à un entier ou utiliser un bitwise ou ( | code>) pour petits nombres. p>

var myArr = [0,2,3,4];

  function newNum(n_arr){
     let r = () => Math.random()*9 | 0,
     n = r();
     while(n_arr.includes(n)) {
       n = r();
     }
     return n;
  }

let result =  newNum(myArr);
console.log(result);


0 commentaires

0
votes
var myArr= [0,2,5];
function randomNumber(myArr, n){
    n ? n : 1;
    var num = Math.random() * n;
    if(myArr.indexOf( num ) !==-1 ) {
        return randomNumber( myArr, n );
    }
    return num;
}
randomNumber(myArr, 10);

0 commentaires

0
votes

Si vous souhaitez renvoyer le premier numéro manquant dans le tableau, à partir de votre code ci-dessus, vous pouvez simplement vérifier si chaque valeur du i code> existe dans la matrice et le moment où la valeur n'existe pas , renvoyez-le.

 var myArr = [0,2,3,4]; // original array

  function newNum(){

     for (var i = 0; i < 10; i++) { // loop through i from 0-9

       if (myArr.indexOf(i) === -1){ // check for the first missing number
        return i; //return it
       }
     }
  }

newNum()


0 commentaires