Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317

    Random Array element + Eliminare l'elemento una volta estratto

    codice:
    Array.prototype.randNdelete = function () {
        var   rnd = Math.random()
            , lng = this.length
            , ret = this[Math.floor(rnd * lng)];
        
        delete this[Math.floor(rnd * lng)];
        
        return ret;
    }
    dove sbaglio?

    Se ciclo un array con 4 elementi, spesso uno me lo ritorna "undefined" perchè lo cancella.

    EDIT:

    Ho risolto così, secondo voi funziona? (Teoricamente ho provato e va...)

    codice:
    Array.prototype.randNdelete = function (undefined) {    
        do {
            var   rnd = Math.random()
                , lng = this.length
                , ret = this[Math.floor(rnd * lng)];
        } while(ret === undefined);
        
        delete this[Math.floor(rnd * lng)];
        return ret;
    }
    Ultima modifica di zacca94; 26-09-2015 a 15:21

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    UP/ non funziona correttamente, ogni tanto mi va in loop infinito.

    RI-UP/ Ok il loop infinito dipendeva da altro codice nella pagina. Direi di aver fatto abbastanza test. E' possibile chiudere, il codice funziona.
    Ultima modifica di zacca94; 26-09-2015 a 15:51

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.