6 of 17 menu

JavaScript'te for-in Döngüsü ile Dizi İterasyonu Hatası

Bir diziyi iterasyon için for-of döngüsü kullanılmalıdır. Bununla birlikte, bazen yeni başlayanlar yanlışlıkla for-in döngüsünü kullanmaya çalışır. Bu hatanın karakteristik belirtilerine bir göz atalım.

Bir dizimiz olduğunu varsayalım:

let arr = ['a', 'b', 'c'];

Bu dizinin elemanlarını tek tek dolaşalım ve onları tek bir satıra yazalım.

Bir programcı bu sorunu zaten çözmüş, ama yanlışlıkla for-in döngüsünü kullanmış. Bakalım ne elde etmiş:

let res = ''; for (let elem in arr) { res += elem; } console.log(res); // '012' yazacak

Sonuç olarak, 'abc' değil, '012' dizisi elde ediliyor. Neden böyle olduğunu anlamaya çalışalım.

Neden dizi zaten for-in döngüsü ile dolaşılabiliyor? Sebebi şu: JavaScript'te dizi, nesnenin özel bir durumudur. Bu yüzden aslında bu açıdan bakıldığında bu geçerli bir koddur. Ama böyle yapılmamalıdır.

Sebebi şu: for-in döngüsü bazı koşullarda fazladan şeylere takılabilir, ve dizi elemanlarına ek olarak iterasyon sırasında başka istenmeyen bir şeyler de elde edebilirsiniz. Dizileri sadece for-of ile dolaşın.

Şimdi neden böyle garip bir sonuç gördüğümüzü anlayalım. Sebep şu, for-in ile dolaşırken elem değişkenine aslında anahtarların (keys) gelmesidir, bu değişkenin adının kafa karıştırıcı olmasına rağmen.

Şimdi yapılan hatayı düzeltelim ve doğru kodu yazalım:

let arr = ['a', 'b', 'c']; let res = ''; for (let elem of arr) { res += elem; } console.log(res); // 'abc' yazacak
Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet