6 of 17 menu

Erreur de parcours de tableau avec la boucle for-in en JavaScript

Pour parcourir un tableau, il faut utiliser la boucle for-of. Parfois, cependant, les débutants essaient par erreur d'appliquer la boucle for-in. Regardons les signes caractéristiques de cette erreur.

Supposons que nous ayons un tableau :

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

Parcourons les éléments de ce tableau et inscrivons-les dans une seule chaîne.

Un certain programmeur a déjà résolu cette tâche, mais a utilisé par erreur la boucle for-in. Voyons ce qu'il a obtenu :

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

Ainsi, le résultat est la chaîne '012', et non 'abc'. Voyons pourquoi cela s'est produit.

Pourquoi le tableau a-t-il été parcouru avec la boucle for-in ? Le fait est que un tableau en JavaScript est un cas particulier d'objet. Donc, en réalité, sous cet aspect, c'est un code correct. Mais il ne faut pas faire ainsi.

Le problème est que for-in dans certaines conditions peut attraper des éléments supplémentaires, et en plus des éléments du tableau, vous pourriez obtenir autre chose de parasite lors du parcours. Parcourez les tableaux uniquement avec for-of.

Voyons maintenant pourquoi nous voyons un résultat aussi étrange. Le fait est que lors du parcours avec for-in, dans la variable elem, ce sont en réalité les clés qui vont être stockées, malgré le nom trompeur de cette variable.

Corrigeons l'erreur commise et écrivons le code correct :

let arr = ['a', 'b', 'c']; let res = ''; for (let elem of arr) { res += elem; } console.log(res); // affichera 'abc'
Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser