Nodejs Array Shuffle shuffle()

Here you can find the source of shuffle()

Method Source Code

var binarySearch = function(needle, haystack) {
    var low = 0,/*from  w w w  . j  a v  a  2  s . c o m*/
        high = haystack.length - 1;
    haystack.sort(function(x, y) {
        return x - y;
    });

    while (low <= high) {
        //set middle point
        var middle = Math.floor((low + high) / 2);
        if (needle === haystack[middle])
            return middle;
        //check right side of haystack
        else if (needle > haystack[middle])
            low = middle + 1;
        else
            high = middle - 1;
    }
    return -1;
};


var range = function(start, stop, step) {
    var arr = [];
    while (start < stop) {
        arr.push(start);
        start += step;
    }
    return arr;
};


Array.prototype.shuffle = function() {
    var clone = this.slice(0),
        rndPos, temp;
    for (var i = 0; i < clone.length; i++) {
        rndPos = Math.floor(Math.random() * clone.length);
        temp = clone[i];
        clone[i] = clone[rndPos];
        clone[rndPos] = temp;
    }
    return clone;
};

var haystack = range(0, 500, 10).shuffle();
console.log(haystack);

console.log(binarySearch(360, haystack));

Related

  1. 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;
    };
    String.prototype.hashCode = function(){
      var hash = 5381;
      for (i = 0; i < this.length; i++) {
        char = this.charCodeAt(i);
        hash = ((hash<<5)+hash) + char;
    ...
    
  2. shuffle()
    Array.prototype.shuffle = function () {
      var i = this.length, j, temp;
      if ( i === 0 ) return false;
      while ( --i ) {
         j = Math.floor( Math.random() * ( i + 1 ) );
         temp = this[i];
         this[i] = this[j]; 
         this[j] = temp;
    
  3. shuffle()
    Array.prototype.shuffle = function() {
      var i = this.length, j, tempi, tempj;
      if ( i == 0 ) return false;
      while ( --i ) {
         j       = Math.floor( Math.random() * ( i + 1 ) );
         tempi   = this[i];
         tempj   = this[j];
         this[i] = tempj;
         this[j] = tempi;
    ...
    
  4. 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;
    
  5. 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;
    
  6. shuffle()
    Array.prototype.shuffle = function (){
        var i = this.length, j, temp;
        if ( i == 0 ) return;
        while ( --i ) {
            j = Math.floor( Math.random() * ( i + 1 ) );
            temp = this[i];
            this[i] = this[j];
            this[j] = temp;
    };
    
  7. 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;
    
  8. shuffle()
    Array.prototype.shuffle = function () {
        for (var i = this.length - 1; i > 0; i--) {
            var j = Math.floor(Math.random() * (i + 1));
            var tmp = this[i];
            this[i] = this[j];
            this[j] = tmp;
        return this;
    };
    ...
    
  9. shuffle()
    Array.prototype.shuffle = function() {
        var i = this.length;
          while(i){
              var j = Math.floor(Math.random()*i);
              var t = this[--i];
              this[i] = this[j];
              this[j] = t;
          return this;
    ...