Nodejs Array Shuffle shuffle()

Here you can find the source of shuffle()

Method Source Code

'use strict';//from  ww  w.  j  a v a 2s  . c  om
// Returns a shuffled copy of the array;
Array.prototype.shuffle = function() {
  var arr = this.slice(0);
  var counter = this.length,
    temp, index;

  // While there are elements in the array
  while (counter > 0) {
    // Pick a random index
    index = Math.floor(Math.random() * counter);

    // Decrease counter by 1
    counter--;

    // And swap the last element with it
    temp = arr[counter];
    arr[counter] = arr[index];
    arr[index] = temp;
  }

  return arr;
};

Related

  1. shuffle()
    Array.prototype.shuffle = function() {
        if (Object.prototype.toString.call(this) !== '[object Array]') {
            throw new TypeError("`this` must be Array, not " + typeof this);
        var length = this.length;
        for (var i = length - 1; i >= 0; i--) {
            var randomIndex = Math.floor(Math.random() * length),
                temp = this[i];
            this[i] = this[randomIndex];
    ...
    
  2. 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);
    
  3. 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;
    };
    
  4. 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) {
    ...
    
  5. 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;
    ...
    
  6. shuffle()
    Array.prototype.shuffle=function() {
      this.sort(function() {return Math.random()-0.5; });
    
  7. 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;
    
  8. 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;
    };
    
  9. 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;
    };
    ...