SORU
15 Mart 2010, PAZARTESİ


Nasıl (karışık) JavaScript bir dizi rastgele?

Böyle bir dizi var:

var arr 1 = ["a", "b", "c", "d"];

Nasıl / karışık rastgele olabilir miyim?

CEVAP
15 Mart 2010, PAZARTESİ


De-facto tarafsız shuffle algoritması Fisher-Yates (aka Knuth) Karıştır.

https://github.com/coolaj86/knuth-shuffle bkz

great visualization here (orijinal sonrası linked to this) görebilirsiniz

function shuffle(array) {
  var currentIndex = array.length, temporaryValue, randomIndex ;

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

    // Pick a remaining element...
    randomIndex = Math.floor(Math.random() * currentIndex);
    currentIndex -= 1;

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

  return array;
}

Gibi çok kullanılan

var arr = [2, 11, 37, 42];
shuffle(arr);
console.log(arr);

Bilgi about the algorithm kullanılan biraz daha fazla.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • pissengehen

    pissengehen

    26 EYLÜL 2006
  • SuppressedStorm

    SuppressedSt

    11 AĞUSTOS 2013
  • williamfitzsimmons

    williamfitzs

    14 Mart 2008