Very short snippet: shuffle() in Javascript e Actionscript

lunedì 16 febbraio, 2009

In PHP esiste una comoda funzione chiamata shuffle() che permette di mescolare un array (vedi Very short trick: prendere elementi casuali da un array in PHP). Un'ottima versione per Javascript l'ho trovata qui. Qui sotto il codice leggermente rivisto:

JavaScript:
  1. Array.prototype.shuffle = function() {
  2. for(var j, x, i = this.length; i; j = Math.floor(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x);
  3. }

Rispetto all'originale ho esteso l'oggetto Array e inserito Math.floor() al posto di parseInt(), in quanto da test effettuati è risultato estremamente più veloce, almeno sulla mia macchina e con FireFox 3.

In ActionScript 3.0 l'ho usata all'interno della classe MatrixArray:

Actionscript:
  1. /**
  2.  * Mescola in modo casuale la matrice
  3.  *
  4.  */
  5. public function shuffle():void {
  6.     // thanks to http://jsfromhell.com/array/shuffle
  7.     for(var j, x, i = __len; i; j = Math.floor(Math.random() * __len), x = this[--i], this[i] = this[j], this[j] = x);
  8. }

Post correlati

Questo articolo ti è stato utile?: Per nientePocoAbbastanzaMoltoMoltissimo
Loading ... Loading ...

3 commenti a: “Very short snippet: shuffle() in Javascript e Actionscript”

  1. 02 apr, 2009 Very short snippet: estendere un array Actionscript con il metodo shuffle() | Undolog.com:

    [...] parlato già di come realizzare il metodo shuffle() in Javascript e Actionscript. Mi sono accorto, tuttaavia, di non aver sottolineato che anche Actionscript è in grado di [...]

  2. 02 apr, 2009 DaveOnCode:

    This is my own solution: http://www.daveoncode.com/2009/01/08/implementing-arrayshuffle-in-actionscript/

    It's only 3 lines of code and it works fine :)

  3. 02 apr, 2009 Giovambattista Fazioli:

    @DaveOnCode: very short snippet :) thx

Lascia un commento

TAG XHTML PERMESSI: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> INSERIMENTO CODICE:
<pre></pre>         // blocco generico
[code][/code]       // blocco generico
[as][/as]           // Actionscript
[css][/css]         // CSS Style Sheet
[html][/html]       // HTML
[js][/js]           // Javascript
[objc][/objc]       // Objective-C
[php][/php]         // PHP
[sql][/sql]         // SQL