Nodejs Array Shuffle shuffle()

Here you can find the source of shuffle()

Method Source Code

const ranks = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
suits = ["heart", "club", "diamond", "spade"];

function Card(rank, suit) {
  this.rank = rank;//w  w w  .j a  va  2s .c o m
  this.suit = suit;
}

function newDeck() {
  const deck = [];
  for(let i = 1; i < 14; i++){
    for(let j = 0; j < 4; j++){
      deck.push(new Card(i, suits[j]));
    }
  }
  return deck;
}

Array.prototype.shuffle = function() {
  let i = 0,
  j = 0,
  temp = null;

  for (i = this.length - 1; i > 0; i--) {
    j = Math.floor(Math.random() * (i + 1));
    temp = this[i];
    this[i] = this[j];
    this[j] = temp;
  }
  return this;
};

module.exports = newDeck;

Related

  1. shuffle()
    Array.prototype.shuffle = function() {
      for(var j, x, k = this.length; k; j = Math.floor(Math.random() * k), x = this[--k], this[k] = this[j], this[j] = x);
      return this;
    };
    
  2. shuffle()
    Array.prototype.shuffle = function() {
      var i = this.length, j, temp;
      if ( i === 0 ) { return this; }
      while ( --i ) {
         j = Math.floor( Math.random() * ( i + 1 ) );
         temp = this[i];
         this[i] = this[j];
         this[j] = temp;
      return this;
    };
    
  3. shuffle()
    Array.prototype.shuffle = function(){
        var counter = this.length, temp, index;
        while (counter > 0) {
            index = (Math.random() * counter--) | 0;
            temp = this[counter];
            this[counter] = this[index];
            this[index] = temp;
    };
    ...
    
  4. shuffle()
    Array.prototype.shuffle = function() {
        var i = this.length, j, temp;
        if ( i == 0 ) return this;
        while ( --i ) {
            j = Math.floor( Math.random() * ( i + 1 ) );
            temp = this[i];
            this[i] = this[j];
            this[j] = temp;
        return this;
    function shuffle(array){
        return Array.prototype.shuffle.call(array)
    
  5. shuffle()
    Array.prototype.shuffle = function() {
        for(var j, x, i = this.length; i; j = parseInt(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x);
        return this;
    };
    Array.prototype.shuffleC = function function_name() {
      var m = this.length, t, i;
      while (m) {
        i = Math.floor(Math.random() * m--);
        t = this[m];
    ...
    
  6. shuffle()
    Array.prototype.shuffle = function () { 
      for(var j, x, i = this.length; i; j = Math.floor(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x);
      return this;
    };
    console.log("#FFFEFA".split(", ").shuffle());
    
  7. shuffle()
    Array.prototype.shuffle = function () {
      for(var j, x, i = this.length; i; j = Math.floor(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x);
      return this;
    };
    
  8. shuffle()
    Array.prototype.shuffle = function(){
       var new_arr = this.slice(0);
     for (var j, x, i = new_arr.length; i; j = Math.floor(Math.random() * i), x = new_arr[--i], new_arr[i] = new_arr[j], new_arr[j] = x);
       return new_arr;
    
  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;