Javascript ile bir metin içindeki karakterleri rastgele karıştırmak

Anonim (156) 3 yıl önce sordu

Javascript ile karakter karıştırması yapmak istiyorum. Elimde "EEEEEKKKLLLLLL" gibi bir metin var. Bunu rastgele harfler karışacak şekilde "EKLEEELLKK" gibi bir karıştırma yapmak istiyorum.

Javascript'te hazır metin karıştırma fonksiyonu var mı? Javascript ile metin karıştırma nasıl yapılır?

Toplam 1 cevap


alattin (16999) 3 yıl önce cevapladı

Javascript'te yerleşik bir karıştırma fonksiyou yok. Fakat string karıştırmak için şu yöntemi kullanabilirsin

String.prototype.karistir = function () {
                var c = this.split(""), n = c.length;
                for (var i = n - 1; i > 0; i--) {
                    var j = Math.floor(Math.random() * (i + 1));
                    var tmp = c[i];
                    c[i] = c[j];
                    c[j] = tmp;
                }
                return c.join("");
            }

Bu kodu kullandığında herhangi bir veri de .karistir() dediğin zaman sana karıştırılmış olarak sonuç döndürülecektir.

Kullanılan algoritma  Fisher–Yates shuffle algoritması. Tüm karakterler arasında gezinen bir döngü içinde dizideki elemanın değeri geçici bir değişkene atanıyor ve daha sonra bu değer başka bir dizideki elemanın değeri ile değiştiriliyor.
Bu işlem metnin uzunluğu dahilinde üretilen rastgele bir sayı ile yapılıyor. Sonuçta ortaya karışık bir metin çıkıyor.

Javascript ile bir metin içindeki karakterleri karıştırmak istiyorsan kullanabileceğin güzel bir yöntem.