2016-06-02 16 views
1

Ich brauche Hilfe beim Übersetzen der folgenden es6 Schleife zu es5 Code.Übersetzen ES6 'für' Schleife von ES5 'für jede' Schleife

for (let [field_name, field] of impList) { 
//// some code 
} 

Danke.

+2

Das hängt sehr davon ab, was 'impList' ist. Eine 'Karte'? Eine Anordnung? – Bergi

+0

Haben Sie versucht, einen Transpiler zu verwenden? [Benutze Babel] (http://babeljs.io/repl/#?evaluate=true&lineWrap=false&presets=on&experimental=false&loose=false&spec=false&playground=true&code=for%20 (lass% 20% 5BFeld_Name% 2C% 20Feld% 5D% 20von % 20imListe)% 20% 7B% 0D% 0A% 20% 20% 20% 2F% 2F% 20%% 20Code% 0D% 0A% 7D). – Bergi

Antwort

3

Unter der Annahme, dass impList ein Array (oder ein Array-ähnlichen Objekt), und nicht um eine ES6 Iterable type (der polyfills erfordern würde, usw.), kann man grob übersetzen, dass auf einen for loop:

for (var i=0; i<impList.length; i++) { 
    var field_name = impList[i][0]; 
    var field = impList[i][1]; 
} 

oder ein forEach:

impList.forEach(function(entry) { 
    var field_name = entry[0]; 
    var field = entry[1]; 
}); 

Neben impList möglicherweise eine Iterable ist, gibt es einige Nuancen hier, dass ich nicht zu ES5 habe zu übersetzen, weil es eine ganze Reihe von Nachteil sind s. Deshalb sollten Sie einen Transpiler wie Babel verwenden.

+0

um ehrlich zu sein, verstehe ich nicht Babels Code: für (var _iterator = impList.entries() [Symbol.iterator](), _step;! (_ IteratorNormalCompletion = (_step = _iterator.next()). Getan); _iteratorNormalCompletion = wahr) { \t var _step $ value = _slicedToArray (_schrittwert, 2); var feldname = _schritt $ wert [0]; \t var _field = _schritt $ wert [1]; } – badigard

+0

Babels Ausgabe ist für Computer geschrieben, nicht für Menschen :) Es enthält Polyfills, Shims und Funktionen, um die oben beschriebenen Nuancen zu behandeln. Alles, was Sie wissen müssen, ist, dass Sie ES6 einfügen und es gibt gültige ES5 aus! – CodingIntrigue

+0

Wenn ich den es5-Code einfüge, erhalte ich einen Fehler beim Objekt 'Symbol'. – badigard