Elakkan "untuk...dalam" untuk Lelaran Tatasusunan dalam JavaScript
Gelung "untuk...dalam" JavaScript mempunyai potensi perangkap apabila mengulangi tatasusunan. Walaupun nampaknya pendekatan yang sesuai, ia boleh membawa kepada hasil yang tidak dijangka.
Mengapa ia Idea Buruk
gelung "untuk...dalam" berulang ke atas sifat , termasuk yang tidak ditakrifkan secara langsung dalam tatasusunan. Ini termasuk sifat yang diwarisi daripada prototaip tatasusunan atau ditambah secara dinamik.
Sebagai contoh, pertimbangkan kod berikut:
var a = []; // Empty array a[5] = 5; // Resize the array
Walaupun mencipta tatasusunan kosong, menetapkan nilai kepada indeks kelimanya mengubah saiz dengan berkesan tatasusunan.
Apabila melelaran menggunakan "untuk...dalam":
for (var i in a) { console.log(a[i]); }
Gelung akan berulang pada sifat berikut:
Walau bagaimanapun, ia juga akan berpotensi lelaran ke atas sifat yang diwarisi atau sifat lain yang ditambahkan pada objek tatasusunan, yang mungkin tidak berkaitan dengan data tatasusunan.
Sebaliknya, Gunakan Gelung Numerik
Untuk mengulang ke atas tatasusunan secara khusus, gunakan gelung berangka:
for (var i = 0; i < a.length; i++) { console.log(a[i]); }
Gelung ini secara eksplisit berulang ke atas indeks berangka bagi tatasusunan, memastikan bahawa hanya nilai yang dijangkakan diakses.
Atas ialah kandungan terperinci Mengapa Saya Perlu Mengelak Menggunakan Gelung `untuk...dalam` untuk Lelaran Tatasusunan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!