Nodejs Array Shuffle shuffle()

Here you can find the source of shuffle()

Method Source Code

// Randomizes the element ordering and returns the Array

Array.prototype.shuffle = function() {

    // Prototypes throw TypeErrors when the context or arguments are invalid

    if (Object.prototype.toString.call(this) !== '[object Array]') {
        throw new TypeError("`this` must be Array, not " + typeof this);
    }//from   w w  w .  j  a va  2 s. c o  m
    
    var length = this.length;
    
    // Fisher?Yates implementation ("gold standard" of shuffles)

    for (var i = length - 1; i >= 0; i--) {
        var randomIndex = Math.floor(Math.random() * length),
            temp = this[i];

        this[i] = this[randomIndex];
        this[randomIndex] = temp;
    }

    return this;
};

Related

  1. shuffle()
    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;
      this.suit = suit;
    function newDeck() {
      const deck = [];
      for(let i = 1; i < 14; i++){
    ...
    
  2. 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());
    
  3. 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;
    };
    
  4. 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;
    
  5. 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;
    
  6. shuffle()
    Array.prototype.shuffle = function(){
      var length = this.length;
      var i, j, temp;
      for(i = length - 1; i >= 0; i--){
        j = Math.floor(Math.random()*(i+1));
        temp = this[i];
        this[i] = this[j];
        this[j] = temp;
      return this;
    };
    var testArray = [1,2,3,4,5,6,7,8,9,10];
    console.log(testArray.shuffle());
    console.log(testArray);
    
  7. shuffle()
    Array.prototype.shuffle = function(){
      var result = [];
      while(this.length > 0 ){
        result.push( this.splice(Math.floor(Math.random() * this.length), 1)[0] );
      return result;
    };
    
  8. shuffle()
    Array.prototype.shuffle = function(){
      for (var i = 0; i < this.length; i++){
          var a = this[i];
          var b = Math.floor(Math.random() * this.length);
          this[i] = this[b];
          this[b] = a;
    function shuffleProperties(obj) {
    ...
    
  9. shuffle()
    Array.prototype.shuffle = function () {
        let array = this, arraylength = array.length, randomIndex, temp;
        while (arraylength) {
            randomIndex = Math.floor(Math.random(arraylength) * arraylength--);
            temp = array[arraylength];
            array[arraylength] = array[randomIndex];
            array[randomIndex] = temp;
        return array;
    ...