Apabila cuba mencari kedudukan berbilang kejadian elemen, seperti "Nano," dalam tatasusunan JavaScript, kaedah seperti jQuery.inArray atau .indexOf() gagal kerana mereka hanya mengenal pasti kejadian terakhir.
var Cars = ["Nano", "Volvo", "BMW", "Nano", "VW", "Nano"];
Ini penyelesaiannya:
Kaedah .indexOf() membenarkan untuk menentukan indeks permulaan , membolehkan anda mengulang tatasusunan dan menentukan semua kejadian nilai yang ditentukan.
<code class="javascript">function getAllIndexes(arr, val) { var indexes = [], i = -1; while ((i = arr.indexOf(val, i + 1)) != -1) { indexes.push(i); } return indexes; } var indexes = getAllIndexes(Cars, "Nano");</code>
Walau bagaimanapun, seperti yang ditunjukkan oleh VisioN dalam ulasan, gelung mudah untuk menawarkan penyelesaian yang lebih cekap dan ringkas:
<code class="javascript">function getAllIndexes(arr, val) { var indexes = [], i; for (i = 0; i < arr.length; i++) { if (arr[i] === val) { indexes.push(i); } } return indexes; }</code>
Atas ialah kandungan terperinci Bagaimana untuk Mencari Semua Kejadian Elemen dalam Tatasusunan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!