6 of 17 menu

Fehler beim Durchlaufen eines Arrays mit der for-in-Schleife in JavaScript

Um ein Array zu durchlaufen, sollte man die Schleife for-of verwenden. Manchmal jedoch versuchen Anfänger fälschlicherweise, die Schleife for-in anzuwenden. Schauen wir uns die charakteristischen Merkmale dieses Fehlers an.

Nehmen wir an, wir haben ein Array:

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

Lassen Sie uns die Elemente dieses Arrays durchlaufen und sie in einer Zeichenkette zusammenfassen.

Ein gewisser Programmierer hat diese Aufgabe bereits gelöst, hat aber fälschlicherweise die Schleife for-in verwendet. Schauen wir uns an, was dabei herausgekommen ist:

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

Also, als Ergebnis erhalten wir die Zeichenkette '012', und nicht 'abc'. Lassen Sie uns herausfinden, warum das passiert ist.

Warum konnte das Array überhaupt durch die Schleife for-in durchlaufen werden? Die Sache ist die, dass ein Array in JavaScript ein spezieller Fall eines Objekts ist. Daher ist dies in dieser Hinsicht eigentlich ein korrekter Code. Aber man sollte es nicht tun.

Der Grund ist, dass for-in unter bestimmten Umständen zu viel erfassen kann, und man neben den Array-Elementen beim Durchlaufen noch etwas Parasitäres erhält. Durchlaufen Sie Arrays nur mit for-of.

Lassen Sie uns nun klären, warum wir ein solch seltsames Ergebnis sehen. Die Sache ist die, dass beim Durchlaufen mit for-in in die Variable elem tatsächlich die Schlüssel (Keys) gelangen, ungeachtet des irreführenden Namens dieser Variable.

Lassen Sie uns den gemachten Fehler korrigieren und einen korrekten Code schreiben:

let arr = ['a', 'b', 'c']; let res = ''; for (let elem of arr) { res += elem; } console.log(res); // gibt 'abc' aus
Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen