Schleifen können ziemlich interessant sein, wenn man reines JavaScript verwendet. Es scheint, dass nur ECMA6 (neue JavaScript-Spezifikation von 2015) die Schleifen in den Griff bekommen hat. Während ich dies schreibe, haben sowohl Browser als auch beliebte integrierte Entwicklungsumgebungen (IDE) leider immer noch Probleme, die neuen Funktionen vollständig zu unterstützen.
Auf den ersten Blick sieht eine JavaScript-Objektschleife wie vor ECMA6 aus:
for (var key in object) {
if (p.hasOwnProperty(key)) {
var value = object[key];
console.log(key); // This is the key;
console.log(value); // This is the value;
}
}
Auch, ich weiß, das ist außerhalb des Anwendungsbereichs mit dieser Frage, aber im Jahr 2011, ECMAScript 5.1 hinzugefügt die forEach
Methode nur für Arrays, die im Grunde eine neue, verbesserte Methode zum Durchlaufen von Arrays bietet, während für nicht iterierbare Objekte weiterhin die alte, umständliche und verwirrende for
Schleife. Aber das Seltsame ist, dass diese neue forEach
Methode unterstützt nicht break
was zu allen möglichen anderen Problemen führte.
Grundsätzlich im Jahr 2011 gibt es nicht eine echte solide Art und Weise in JavaScript Schleife andere als das, was viele populäre Bibliotheken (jQuery, Underscore, etc.) beschlossen, neu zu implementieren.
Ab 2015 haben wir nun eine bessere Möglichkeit, Schleifen (und Unterbrechungen) für jeden Objekttyp (einschließlich Arrays und Strings) zu erstellen. Hier ist, wie eine Schleife in JavaScript schließlich aussehen wird, wenn die Empfehlung wird Mainstream:
for (let [key, value] of Object.entries(object)) {
console.log(key); // This is the key;
console.log(value); // This is the value;
}
Beachten Sie, dass die meisten Browser den obigen Code ab dem 18. Juni 2016 nicht mehr unterstützen werden. Selbst in Chrome müssen Sie dieses spezielle Flag aktivieren, damit es funktioniert: chrome://flags/#enable-javascript-harmony
Bis dies zum neuen Standard wird, kann die alte Methode weiterhin verwendet werden, aber es gibt auch Alternativen in gängigen Bibliotheken oder sogar leichte Alternativen für diejenigen, die keine dieser Bibliotheken verwenden.