Rastgele işlemler bazı durumlarda gerekli olabilir. Mesela bir diziden rastgele bir isim seçmek, bir diziden rastgele bir müşteri seçmek veya bir array değişkende tutulan hediyelerden rastgele birini seçmek isteyebilirsiniz.
Bu isteklerin sonu gelmez. Bu nedenle biz odaklanmamız gereken işe odaklanalım ve bir diziden rastgele nasıl eleman seçeceğimize bakalım.
Öncelikle dizinin mantığını bilmemiz gerekiyor. Nedir bu bir dizi içerisinde sıfır veya daha fazla eleman olabilir ve her elemanın bir indeks bilgisi vardır. Bu indeks değeri array içerisindeki elemanın bulunduğu konumu ifade eder ve bu değer sıfırdan başlar.
Dizi indeksleri tam sayıdır bu nedenle dizinden rastgelen bir eleman seçeceksek dizinin elemanlarının indekslerinden bir tanesini seçmemiz gerekecektir.
Bir dizinin elemanlarının indeks değerleri 0 dan başlar ve dizi uzunluğunun 1 eksiğine kadar gider. Mesela elmizde 5 elemanlı bir renk dizimiz olduğunu düşünelim.
const renkler = ['beyaz', 'siyah', 'sarı', 'mavi','yeşil'];renkler dizisi 5 elemanlıdır. İndeks değerleri ise 0 – 4 arasındadır. Sırasıyla renkler ve indeks değerleri **beyaz – 0 **, siyah – 1, sarı – 2, mavi – 3, yeşil – 4 şeklindedir.
Şimdi biz rastgele 0 – 4 arasında bir sayı üretirsek mesela 3 olsun, bu değeri kullanarak diziden rastgele bir eleman seçmiş oluruz.
let rastgeleRenk = renkler[3];Şimdi biz bu rastgele eleman seçme işlemini tamamen Javascript ile yapalım.
- 0-1 arasında rastgele bir sayı üretmek için Javascript bize Math.random() metodunu sunar.
- Üretilen bu değeri 0 – 4 arasında getirmek için ise 5 ile çarpacağız.
- Ve üretilen değeri Math.floor() ile aşağı doğru yuvarlayacağız. Bu bize 0 – 4 arası rastgele bir sayı verecektir.
Ve şimdi kodlar.
const renkler = ['beyaz', 'siyah', 'sarı', 'mavi','yeşil'];
const diziBoyutu = renkler.length;
const rastgeleSayi = Math.random() * diziBoyutu;
const rastgeleIndeks = Math.floor(rastgeleSayi);
const rastgeleRenk = renkler[rastgeleIndeks];
console.log(rastgeleRenk);
// Konsola renkler dizisinden rastgele bir renk yazarBu kodların kısa yolu ise
const renkler = ['beyaz', 'siyah', 'sarı', 'mavi','yeşil'];
const rastgeleRenk = renkler[Math.floor(Math.random() * renkler.length)];şeklindedir.
Sonuç
Bir dizi içerisinden rastgele bir eleman seçmek için Math.random ile bir indeks değeri oluşturarak elde ettiğimiz indeksi kullanabiliriz.
Rastgele işlemler için Javascript rastgele renk üretme yazısına bakabilirsiniz.
Javascript hakkıda bir sorunuz mu var? Yorumlardan bize iletebilirsiniz.
