Was ist der effizienteste Weg, eine Nodelist in ES6 zu filtern oder abzubilden?
Basierend auf meinen Lesungen würde ich eine der folgenden Optionen verwenden:
%Vor%oder
%Vor%Welchen würden Sie empfehlen? Und gibt es bessere Möglichkeiten, zum Beispiel ohne Arrays mit einzubeziehen?
[...nodelist]
erstellt ein Array aus einem Objekt, wenn das Objekt iterierbar ist. Array.from(nodelist)
wird ein Array aus einem Objekt machen, wenn das Objekt iterierbar ist oder wenn das Objekt Array-ähnlich ist (hat .length
und numerische Requisiten) Ihre beiden Beispiele sind identisch, wenn NodeList.prototype[Symbol.iterator]
existiert, weil beide Fälle die Iterables abdecken. Wenn Ihre Umgebung nicht so konfiguriert wurde, dass NodeList
iterierbar ist, schlägt Ihr erstes Beispiel fehl, und die zweite wird erfolgreich sein. Babel
derzeit behandelt diesen Fall nicht richtig .
Wenn also NodeList
iterierbar ist, liegt es wirklich an Ihnen, welche Sie verwenden. Ich würde wahrscheinlich von Fall zu Fall wählen. Ein Vorteil von Array.from
ist, dass es ein zweites Argument einer Mapping-Funktion benötigt, während das erste [...iterable].map(item => item)
ein temporäres Array erstellen müsste, Array.from(iterable, item => item)
nicht. Wenn Sie die Liste jedoch nicht zuordnen, ist das egal.
Tags und Links javascript arrays filter ecmascript-6 nodelist