Bu hafta JS'yi öğrenme.JS: dizi için Math.random
Dizide rasgele bir değer döndürmek için Math.random kullanmak mümkün mü? Bu değer bir dize mi ve hala çalışıyor mu?
Bu hafta JS'yi öğrenme.JS: dizi için Math.random
Dizide rasgele bir değer döndürmek için Math.random kullanmak mümkün mü? Bu değer bir dize mi ve hala çalışıyor mu?
Kayan nokta sayısını (0 ile 1 arasında, dahil olmayan) alabilir ve diziye diziye dönüştürebilirsiniz (dizinin 0 ve uzunluğu arasındaki tam sayı - 1). Örneğin:
var a = ['a', 'b', 'c', 'd', 'e', 'f'];
var randomValue = a[Math.floor(a.length * Math.random())];
bunu okuyun:
var arr = [1, 2, 3, 4, 5, 6];
var r = arr[Math.floor(Math.random()*a.length)]; // r will store a value from a pseudo-random position at arr.
Math.round (Math.random() * a.length), diziye geçerli bir dizin olmayan a.length değerine eşit bir sayı döndürebilir. –
Teşekkürler, düzeltildi. – Rodrigo
Evet, bu gerçekten de mümkündür. Math.floor düzgün bir sayı dağılımını elde etmek için, yerine Math.Round kullanılması gerektiğini
<script>
var arr = new Array('a', 'b', 'c', 'd', 'e');
document.write("Test " + arr[Math.floor(Math.random() * ((arr.length - 1) - 0 + 1))]);
</script>
Not: Aşağıda bazı örnek kod.
Yardımlarınız için teşekkürler.
//My array was setup as such.
var arr = New Array();
arr[0]="Long string for value.";
arr[1]="Another long string.";
//etc...
Yardımınla
ve benim dizide (2) değerleri tam sayısını bilmek beri, sadece yaptı: Keşke nasıl
var randomVariable = arr[Math.floor(2*Math.random())]
Sonra çıkış randomVariable.
Teşekkürler!
'arr.length' kullanmalısınız,' 2' değil. –
Bunu kullanabilirsiniz: 1 ile 100 arasında bir sayı gerekiyorsa
var array = [];
for(i = 0; i < 6; i++) {
array[i] = Math.floor(Math.random() * 60);
}
, sadece Math.random değiştirmek() * Math.random için 60() * 100.
teşekkürler! Her dizi değerinde oldukça uzun ifade dizeleri kullanıyorum. Bunu sözdizimsel olarak yazmanın bir yolu var, bu yüzden sadece çok büyük bir çizgi değil? –
Diziyi nasıl oluşturursanız fark etmez. Önemli olan 'kat (length_of_the_array * random_value_between_0_and_1) 'dır. –