Rumah > hujung hadapan web > tutorial js > Mengapa Saya Perlu Mengelak Menggunakan Gelung `untuk...dalam` untuk Lelaran Tatasusunan dalam JavaScript?

Mengapa Saya Perlu Mengelak Menggunakan Gelung `untuk...dalam` untuk Lelaran Tatasusunan dalam JavaScript?

Mary-Kate Olsen
Lepaskan: 2024-12-28 22:07:18
asal
490 orang telah melayarinya

Why Should I Avoid Using `for...in` Loops for Array Iteration in JavaScript?

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
Salin selepas log masuk

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]);
}
Salin selepas log masuk

Gelung akan berulang pada sifat berikut:

  • 0, 1, 2, 3, 4 (indeks angka)
  • 5 (nilai yang diberikan kepada indeks kelima)

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]);
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan