Bab ini memperkenalkan cara melaksanakan fungsi nombor rawak empat digit mudah melalui contoh kod.
Cara yang agak mudah untuk mencapai ini adalah dengan memilih empat aksara tidak berulang secara rawak daripada nombor dan huruf.
Contoh kod adalah seperti berikut:
function only(ele,arr){ if(arr.length==0){ return true; } for(var j=0;j<arr.length;j++){ if(ele==arr[j]){ return false; }else{ return true; } } } var arr=[0,1,2,3,4,5,6,"a","b","c","d","e","f","g"]; (function(){ var randNum=null; var old=[]; var str=""; function done(){ randNum=Math.floor(Math.random()*14); if(only(randNum,old)){ str=str+arr[randNum]; old.push(randNum); } else{ done(); } } for(var index=0;index<4;index++){ done(); } console.log(str); })(arr)
Kod di atas mencapai keperluan kami. Mari perkenalkan proses pelaksanaan kod di atas.
1. Komen komen:
1.function only(ele,arr){}, fungsi ini boleh menentukan sama ada indeks yang ditentukan telah digunakan dan meletakkan nombor rawak untuk mengelakkan pertindihan.
2.if(arr.length==0){}, jika tatasusunan kosong, ini bermakna tiada kemungkinan penduaan dan mengembalikan benar.
3.for(var j=0;j
6.var randNum=null, isytiharkan pembolehubah dan tetapkan nilai awal kepada null, digunakan untuk menyimpan indeks tatasusunan yang dijana secara rawak.
7.var old=[], mencipta tatasusunan kosong untuk menyimpan nilai indeks tatasusunan yang telah muncul.
8.var str="", mencipta rentetan kosong untuk menyimpan nombor rawak yang dijana.
9.function done(){}, fungsi ini boleh digunakan untuk mendapatkan nombor rawak.
10.randNum=Math.floor(Math.random()*14), dapatkan nilai indeks tatasusunan.
11.jika(hanya(randNum,lama)){
str=str arr[randNum];
old.push(randNum);
}, tentukan sama ada ia telah digunakan, jika tidak, dapatkan elemen tatasusunan dan tambahkannya pada rentetan str, dan akhirnya tambahkan nilai indeks ini pada tatasusunan lama.
12.else{ done();
}, jika ia telah digunakan, kemudian dapatkannya semula, menggunakan rekursi di sini.
13.for(var index=0;index<4;index ){
selesai();
}, gunakan gelung for untuk mendapatkan 4 nombor rawak.
Daripada: http://www.softwhy.com/forum.php?mod=viewthread&tid=16493