Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Olorin
    Registrato dal
    Jan 2004
    Messaggi
    299

    Tabella con numeri non duplicati

    Salve a tutti.
    Premetto che da poco ho iniziato ad interessarmi di Javascrit.
    Sto cercando di imparare.
    Volevo creare una tabella.
    All'interno delle celle dovrebbero comparire di volta in volta numeri non duplicati.
    Attualmente sono riuscito a creare una tabella in cui compaiono numeri random ma non riesco a trovare un metodo per far si che non siano duplicati.

    Nell'esempio seguente creo solamente 2 celle della tabella e al codice dico che voglio che mi inserisca 1 numero per cella che vadano da 1 a 3.

    codice:
    var a1= [];
    var i=0;
    while( i<1){
     var n = Math.floor((Math.random() * 3) +1);
     var r = a1.indexOf(n);
     if(r<0){
     a1.push("<p>"+n+"</p>");
     i++; 
     } 
    }
    console.log(a1[0]);
    
    
    
    
    var b1= [];
    var i=0;
    while( i<1){
     var n = Math.floor((Math.random() * 3) +1);
     var r = b1.indexOf(n);
     if(r<0){
     b1.push("<p>"+n+"</p>");
     i++; 
     } 
    }
    
    
    document.write('<table>');    
    for (a=1; a<=1; a++) {    
    document.write('<tr>')     
    for (b=1; b<=1; b++) {    
    document.write('<td>'+a1+'</td>'+'<td>'+b1+'</td>');    
    }    
    document.write('</tr>');    
    }    
    
    
    document.write('</table>');
    C'è un metodo per far si che i numeri delle celle non siano mai uguali?
    Don't trust!
    Verify

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,223
    Ciao,
    potresti usare un array di appoggio e prima in inserire il numero in tabella verifichi che non sia nell'array
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Utente di HTML.it L'avatar di Olorin
    Registrato dal
    Jan 2004
    Messaggi
    299
    Allora.. Grazie all'aiuto del tipo del canale youtube "Tutorial JavaScript", ho risolto il problema dei numeri.
    Ora ho creato una tabella che, appunto, mi crea numeri random sempre diversi tra loro e che cambiano ogni volta che ricarico la pagina.
    Il codice è il seguente:
    codice:
    
    
     const numeriEstratti = [];
     const colonne = ["","col1","col2","col3","col4"];
     const rig = ["rig1","rig2","rig3","rig4"];
    
    
     
     
          let tabella = '<table>';
    
    
    
    
    
    
          function ritornaNumeroValido() {
    
    
            const numeroRandom = Math.floor((Math.random() * 99) +1);
    
    
            const numeroGiaStatoEstratto = numeriEstratti.includes(numeroRandom);
            if (numeroGiaStatoEstratto) {
    
    
              return ritornaNumeroValido();
            } else {
    
    
              numeriEstratti.push(numeroRandom);
    
    
              return numeroRandom;
            }
          }
          
          for (let i = 0; i < 1; i++) {
            tabella += '<tr>';
            
            for (let i = 0; i < 5; i++) {
              tabella += "<th>"+colonne[i]+"</th>";
            }
            
            tabella += '</tr>';
          }
          
       // prima riga numeri
         for (let i = 0; i < 1; i++) {
            tabella += '<tr>';
    
    
            for (let i = 0; i < 1; i++) {
              tabella += "<th>"+rig[0]+"</th>";
            }
                for (let i = 0; i < 4; i++) {
              tabella += "<td>"+ritornaNumeroValido()+"</td>";
            }
            
                tabella += '</tr>';
          }
          
           // seconda riga numeri
            
           for (let i = 0; i < 1; i++) {
            tabella += '<tr>';
                for (let i = 0; i < 1; i++) {
              tabella += "<th>"+rig[1]+"</th>";
            }
                for (let i = 0; i < 4; i++) {
              tabella += "<td>"+ritornaNumeroValido()+"</td>";
            }
          
            tabella += '</tr>';
          }
          
          
     
          // terza riga numeri
            for (let i = 0; i < 1; i++) {
            tabella += '<tr>';
                for (let i = 0; i < 1; i++) {
              tabella += "<th>"+rig[2]+"</th>";
            }
                for (let i = 0; i < 4; i++) {
              tabella += "<td>"+ritornaNumeroValido()+"</td>";
            }
          
            tabella += '</tr>';
          }
          
          // quarta riga numeri
            for (let i = 0; i < 1; i++) {
            tabella += '<tr>';
                for (let i = 0; i < 1; i++) {
              tabella += "<th>"+rig[3]+"</th>";
            }
                for (let i = 0; i < 4; i++) {
              tabella += "<td>"+ritornaNumeroValido()+"</td>";
            }
          
            tabella += '</tr>';
          }
          
     
          
          tabella += '<table>';
          document.getElementById('tabella').innerHTML = tabella;
    Don't trust!
    Verify

  4. #4
    Utente di HTML.it L'avatar di Olorin
    Registrato dal
    Jan 2004
    Messaggi
    299
    Sempre a riguardo di questa soluzione.. Se io volessi avere la lista dei numeri casuali univoci, invece che in una tabella, tutti ordinati in una sola textarea?
    Come dovrei modificare il codice?
    Don't trust!
    Verify

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.