Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    24

    alfabeto in ordine casuale

    raga mi serve una mano.
    funziona, quasi!
    a volte mi da la stringa giusta di 101 caratteri, ma a volte me ne stampa molti meno, nonostante tramite alert yl.length mi restituisca sempre 101. dove sbaglio?

    codice:
    $("#boto").click(function(){
    	
    
    
    var let = new Array ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' ','1','2','3','4','5','6','7','8','9','0','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','!','"','£','$','%','&','/','(',')','=','?','^','ì','è','é','*','[',']','{','}','@','à','°','#','§','ù','-','_','.',',',';',':','<','>','€','+','|');	
    let.push("'");
    
    
    var yl = new Array ();
    
    
    yl.splice(0);
    
    
    for (fff=100; let.length > 0; fff--){ 
    
    //numero casuale
    var ly = Math.floor((Math.random() * fff) );	
    
    
    if (let[ly] == 'undefined'){fff++;continue;}
    //inserisco in nuovo array
    
    
    yl.unshift(let[ly]);
    //elimina da array
    
    
    let.splice(ly,1);
    
    
    
    
     
     };
    
    
    
    
    $('#code1').html('<p class="codice">'+yl.join('')+'</p>');
    });

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Già usi il random che di sicuro ti tirerà fuori 2 volte lo stesso numero. Poi moltiplichi il random per fff che diminuisce ad ogni loop quindi quando arrivi a 10 ti tirerà fuori un numero tra 1 e 10 non tra 1 e 101.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Oopps. Non avevo visto il fff++
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Fatto una decina di prove. Nessun problema.
    Non sarà che per caso ottieni un tag html <p o altro ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    24
    innanzitutto grazie
    in secondo luogo non ho capito la tua domanda
    ma tu hai provato il codice e funziona?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    24
    ok ho capito la tua domanda e si, ora cerco soluzione
    a volte basta solo un altra testa per trovare un problema ovvio grandissimo!

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Non ho riscontrato problemi. Ma ho fatto un loop per stampare a video tutti gli elementi dell'array.

    Siccome fai un join('') non è che hai una stringa che contiene < seguito da un carattere che dà un tag html e poi un > che lo chiude. In questo caso parte della stringa non verrebbe stampata immagino.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    24
    oddio, non mi viene in mente nulla per ovviare al problema, idee?

  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Nell'array puoi mettere &lt; al posto di < e &gt; al posto di >
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  10. #10
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Credo che il problema non dipenda tanto dalle parentesi angolari, ma proprio da un'interruzione del ciclo perché è impostato con una logica un po' contorta (mio parere personale).

    Ad ogni modo con jQuery puoi usare la funzione text() che esegue in automatico l'escape dei caratteri per essere correttamente visualizzati in un contenuto html.

    In qualunque caso, personalmente, rivedrei tutto lo script.
    Ti propongo uno script più snello e funzionante:
    codice:
    <!DOCTYPE HTML>
    <html>
      <head>
        <title>Esempio</title>
        <meta charset="utf-8">
        <script src="http://code.jquery.com/jquery-latest.min.js"></script>
        <script type="text/javascript">
          $(function(){
            $("#boto").click(function(){
              var let = 'abcdefghijklmnopqrstuvwxyz 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ!"£$%&/()=?^ìèé*[]{}@à°#§ù-_.,;:<>€+|\''.split('');
              var cod = '';
              while (let.length){cod += let.splice(+(Math.random()*let.length),1)}
              $('#code1').html($('<p class="codice"></p>').text(cod));
            });
    
          })
        </script>
      </head>
      <body>
        <input type="button" id="boto" value="elabora">
        <div id="code1"></div>
      </body>
    </html>
    Ultima modifica di KillerWorm; 07-01-2015 a 00:09
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

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 © 2025 vBulletin Solutions, Inc. All rights reserved.