Array.forEach
nicht gebrochen werden kann und mit try...catch
oder hakelige Methoden wie Array.every
o Array.some
macht Ihren Code nur noch schwerer verständlich. Es gibt nur zwei Lösungen für dieses Problem:
1) Verwenden Sie eine alte for
Schleife: Dies ist die kompatibelste Lösung, kann aber bei häufigem Gebrauch in großen Codeblöcken sehr schwer zu lesen sein:
var testArray = ['a', 'b', 'c'];
for (var key = 0; key < testArray.length; key++) {
var value = testArray[key];
console.log(key); // This is the key;
console.log(value); // This is the value;
}
2) die neue ECMA6-Spezifikation (2015) in Fällen zu verwenden, in denen Kompatibilität kein Problem darstellt. Beachten Sie, dass selbst im Jahr 2016 nur wenige Browser und IDEs eine gute Unterstützung für diese neue Spezifikation bieten. Während dies für iterierbare Objekte (z. B. Arrays) funktioniert, müssen Sie, wenn Sie dies für nicht iterierbare Objekte verwenden möchten, die Object.entries
Methode. Diese Methode ist seit dem 18. Juni 2016 kaum noch verfügbar, und selbst Chrome erfordert ein spezielles Flag, um sie zu aktivieren: chrome://flags/#enable-javascript-harmony
. Für Arrays brauchen Sie das alles nicht, aber die Kompatibilität bleibt ein Problem:
var testArray = ['a', 'b', 'c'];
for (let [key, value] of testArray.entries()) {
console.log(key); // This is the key;
console.log(value); // This is the value;
}
3) Viele Menschen würden zustimmen, dass weder die erste noch die zweite Option gute Kandidaten sind. Bis Option 2 zum neuen Standard wird, bieten die meisten populären Bibliotheken wie AngularJS und jQuery ihre eigenen Schleifenmethoden an, die allem in JavaScript verfügbaren überlegen sein können. Auch für diejenigen, die diese großen Bibliotheken noch nicht verwenden und nach leichtgewichtigen Optionen suchen, bieten sich Lösungen wie este kann verwendet werden und ist fast gleichwertig mit ECMA6, wobei die Kompatibilität mit älteren Browsern erhalten bleibt.