Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mengoptimumkan Pemilihan Item Tatasusunan Tanpa Pengulangan?

Bagaimana untuk Mengoptimumkan Pemilihan Item Tatasusunan Tanpa Pengulangan?

Linda Hamilton
Linda Hamiltonasal
2024-10-30 08:14:27535semak imbas

How to Optimize Array Item Random Selection Without Repetition?

Cara Meningkatkan Kecekapan Pemilihan Item Tatasusunan

Apabila memilih item tatasusunan secara rawak sambil mengelakkan pengulangan, kecekapan memainkan peranan yang penting. Walaupun kod yang disediakan secara berkesan menghalang pemilihan item yang sama beberapa kali berturut-turut, terdapat potensi untuk peningkatan prestasi.

Mengenai persoalan rekursi, fungsi yang disediakan secara teknikal tidak layak sebagai rekursif kerana ia tidak memanggil dirinya sendiri secara langsung tetapi sebaliknya memanggil dirinya sendiri melalui fungsi lain (chooseName()). Walau bagaimanapun, ia berkongsi persamaan dengan fungsi rekursif dalam sifat berulangnya.

Untuk meningkatkan kecekapan, pendekatan alternatif boleh diguna pakai yang menghapuskan gelagat seperti rekursif dan dengan ketara mengurangkan masa yang dihabiskan untuk mencari item unik. Strategi ini melibatkan mencipta fungsi baharu yang memilih item secara rawak sehingga semua item dalam tatasusunan telah habis. Setelah semua item telah digunakan, fungsi akan bermula semula dari awal, memastikan tiada item diulang.

Kod berikut melaksanakan pendekatan ini:

<code class="javascript">function randomNoRepeats(array) {
  var copy = array.slice(0);
  return function() {
    if (copy.length < 1) { copy = array.slice(0); }
    var index = Math.floor(Math.random() * copy.length);
    var item = copy[index];
    copy.splice(index, 1);
    return item;
  };
}

var chooser = randomNoRepeats(['Foo', 'Bar', 'Gah']);
chooser(); // => "Bar"
chooser(); // => "Foo"
chooser(); // => "Gah"
chooser(); // => "Foo" -- only repeats once all items are exhausted.</code>

Dengan menggunakan pendekatan yang diubah suai ini, anda berkesan boleh mengelakkan pengulangan sambil mengekalkan pemilihan item yang cekap tanpa potensi untuk lelaran gelung yang panjang seperti dalam pelaksanaan seperti rekursif.

Atas ialah kandungan terperinci Bagaimana untuk Mengoptimumkan Pemilihan Item Tatasusunan Tanpa Pengulangan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn