Nodejs Array Shuffle shuffle()

Here you can find the source of shuffle()

Method Source Code

// REF: http://stackoverflow.com/a/2450976/487544
Array.prototype.shuffle = function() {
    var currentIndex = this.length, temporaryValue, randomIndex;

    // While there remain elements to shuffle...
    while (0 !== currentIndex) {

        // Pick a remaining element...
        randomIndex = Math.floor(Math.random() * currentIndex);
        currentIndex -= 1;/*from   w w  w .ja  v a 2  s.co  m*/

        // And swap it with the current element.
        temporaryValue = this[currentIndex];
        this[currentIndex] = this[randomIndex];
        this[randomIndex] = temporaryValue;
    }

    return this;
}

Related

  1. shuffle()
    'use strict';
    Array.prototype.shuffle = function() {
      var arr = this.slice(0);
      var counter = this.length,
        temp, index;
      while (counter > 0) {
        index = Math.floor(Math.random() * counter);
        counter--;
        temp = arr[counter];
    ...
    
  2. shuffle()
    Array.prototype.shuffle=function() {
      this.sort(function() {return Math.random()-0.5; });
    
  3. shuffle()
    Array.prototype.shuffle = function() {
    var s = [];
    while (this.length) s.push(this.splice(Math.random() * this.length, 1)[0]);
    while (s.length) this.push(s.pop());
    return this;
    
  4. shuffle()
    Array.prototype.shuffle = function(){
      var i=this.length,j,t;
      while(i--)
        j=Math.floor((i+1)*Math.random());
        t=this[i];
        this[i]=this[j];
        this[j]=t;
      return this;
    };
    
  5. shuffle()
    Array.prototype.shuffle = function () {
      var l = this.length + 1;
      while (l--) {
        var r   = ~~(Math.random() * l), o = this[r];
        this[r] = this[0];
        this[0] = o;
      return this;
    };
    ...
    
  6. shuffle()
    Array.prototype.shuffle = function() {
      var ar=this;
    for(var j, x, i = ar.length; i; j = parseInt(Math.random() * i), x = ar[--i], ar[i] = ar[j], ar[j] = x);
        return ar;
    
  7. shuffle()
    Array.prototype.shuffle = function() {
      var i = this.length, j, temp;
      while(--i > 0) {
        j = Math.floor(Math.random() * (i+1));
        temp = this[j];
        this[j] = this[i];
        this[i] = temp;
      return this;
    ...
    
  8. shuffle()
    Array.prototype.shuffle = function()
      var s = [];
      while (this.length) s.push(this.splice(Math.random() * this.length, 1));
      while (s.length) this.push(s.pop());
      return this;
    };
    Array.prototype.indexOf = function( element )
      for( var i in this )
        if( this[i] == element )
          return i;
      return -1;
    };
    String.prototype.copy = function()
      return this.substring( 0, this.length );
    };
    String.prototype.trim = function( ext )
      var chars = [
        " ", "\t", "\n", "\r"
      ];
      var s = this.copy();
      if( arguments.length > 0 ){
        for( var i in ext ){
          chars.push( ext[i] );
      while( chars.indexOf( s.charAt( 0 ) ) != -1 ){
        s = s.substring( 1, s.length );
      while( chars.indexOf( s.charAt( s.length-1 ) ) != -1 ){
        s = s.substring( 0, s.length-1 );
      return s;
    };
    
  9. shuffle()
    Array.prototype.shuffle = function() {
      var currentIndex = this.length, temporaryValue, randomIndex;
      while (0 !== currentIndex) {
        randomIndex = Math.floor(Math.random() * currentIndex);
        currentIndex -= 1;
        temporaryValue = this[currentIndex];
        this[currentIndex] = this[randomIndex];
        this[randomIndex] = temporaryValue;
      return this;
    window.getDeck = function() {
      var ranks = [2, 3, 4, 5, 6, 7, 8, 9, 10, 'jack', 'queen', 'king', 'ace'];
      var suits = ['clubs', 'diamonds', 'hearts', 'spades'];
      var cards = [];
      ranks.forEach(function(rank, index) {
        suits.forEach(function(suit, index) {
          cards.push(rank + "_of_" + suit);
        });
      });
      return cards;
    $(function() {
    })