Menggunakan JavaScript Array.sort() untuk Kocok: Satu Peperiksaan
Dalam artikel ini, kami meneroka kesahihan dan keberkesanan penggunaan JavaScript Kaedah Array.sort() untuk mengocok.
The Isu
Coretan kod yang muncul semasa sesi penyahpepijatan menimbulkan kebimbangan tentang kesesuaian pendekatan ini:
function randOrd(){ return (Math.round(Math.random())-0.5); } coords.sort(randOrd); alert(coords);
Walaupun hasilnya kelihatan memuaskan, keraguan berterusan disebabkan kekurangan sokongan teori untuk algoritma pengisihan yang digunakan oleh kaedah sort(). Selain itu, timbul kebimbangan tentang keseragaman shuffle merentas pelaksanaan yang berbeza.
Menjawab Soalan
Adakah betul menggunakan sort() untuk shuffle?
Secara teori, dijawab oleh Jon, tidak digalakkan untuk bergantung pada kaedah sort() untuk mengocok kerana algoritma pengisihan berbeza-beza dan boleh membawa kepada hasil yang tidak seragam.
Fungsi mengocok alternatif
Walaupun kekurangan jenis(), inilah pelaksanaan yang cekap yang memastikan pengagihan pilih atur yang sekata:
function shuffle(array) { var tmp, current, top = array.length; if(top) while(--top) { current = Math.floor(Math.random() * (top + 1)); tmp = array[current]; array[current] = array[top]; array[top] = tmp; } return array; }
Menilai rawak
Untuk menilai rawak, pengukuran teliti keputusan kocok boleh dilakukan. Dengan membandingkan taburan kepada nilai yang dijangkakan, keseragaman keputusan boleh dinilai.
Implikasi untuk Penggunaan Praktikal
Pertimbangkan perkara berikut apabila menggunakan sort() untuk shuffling:
Atas ialah kandungan terperinci Adakah Menggunakan Array.sort() JavaScript untuk Mengocok Kaedah Boleh Dipercayai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!