ES6 - erzeugen Sie ein array von zahlen
Haben gegoogelt dafür fand ich zwei Lösungen:
JS:
var data = [...Array(10).keys()];
console.log(data);
var data1 = Array(8).fill().map((_, i) => i);
console.log(data1);
data1 zeigt [0, 1, ..., 7] jedoch Daten zeigt nur [[Objekt Array-Iterator]] wie habe ich tatsächlich die zahlen sehen.
Ich brauche es für einige Iterationen über zahlen (Teil-Euler-Projekt).
Zuvor habe ich viel von Euler Herausforderungen in Python. Jetzt habe ich beschlossen, ich werde überdenken, und so viel tun, wie kann ich in JS (so viel ES6-syntax möglich) zu helfen, mich zu entwickeln, meine js-Kenntnisse.
- Wenn ich
var data = [...Array(10).keys()];
in meinem browser (neueste stabile Chrome) sehe ich die zahlen aufgeführt sind. Ich seheArrayIterator
wenn ich nurArray(10).keys()
. - Ist es etwas zu tun mit codepen? codepen.io/ödland/pen/QKQGNo/?Redakteure=1111
- Es hat zu tun mit "Babel", welches an diesem bestimmten code-Stift
- Es hat zu tun mit CodePen der Verwendung von Babel. Ich bin mir nicht sicher, welche version Sie ausführen, aber wenn Sie Sie deaktivieren das Babel-Präprozessor, wird alles richtig sein. Sie können diesen code ausführen auf der Babel-website und werden Sie noch sehen das Ergebnis, die Sie erwarten.
- Danke. Nicht babel erforderlich für ES6-features?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist eine einfache Lösung, die funktioniert in codepen:
Klar zu sein,
Array.from()
undArray.keys()
erfordern ein ES6 polyfill, um zu funktionieren in allen Browsern.Eine tour von Array.von thru-praktische Beispiele
Array.from
akzeptiert auch ein zweites argument, das als eine mapping-FunktionJS:
Dies ist schön zu wissen, weil Sie vielleicht möchten zu erzeugen arrays, die manchmal mehr komplexe als nur
0
thruN
.JS:
Oder Sie können arrays aus Generatoren, zu
JS:
Array.from
ist einfach enorm mächtige. Menschen gar nicht bewusst sein volles Potenzial noch.JS:
Es scheint, das problem ist, dass codepen precompiles Ihren code mithilfe babel es2015-lose.
In diesem Modus, Ihr
wird
Und das ist, warum Sie sehen, ein array mit einem iterator.
Mit es2015-Modus, die Sie erhalten würden
welches Verhalten würde, wie gewünscht.
Sehen ②ality - Babel 6: loose-Modus für weitere Informationen über die Modi.
Alle anderen Antworten hier erstellen Sie einen temporären intermediate-array, das ist nicht nötig.
Dies ist im wesentlichen eine map-Funktion, wo Sie die Karte aus dem array-index zu, was auch immer Sie möchten, für eine beliebige Anzahl von Elementen.
Weitere Verfeinerung erzeugt ein array mit Wert ab 1:
Hier ist ein
range
- Funktion, diestart
,end
, und einstep
parameter. Es gibt ein array zurück, beginnend einen vonstart
bis zu (aber ausschließlich) derend
Zahl mit Schritten von Größestep
.JS:
Einen Schritt weiter, wenn Sie wollen, einen Bereich, der enthält die
end
als gut.JS: