Filtern oder ordnen Sie Knotenlisten in ES6 zu

10

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?

    
Christophe 24.09.2015, 15:21
quelle

1 Antwort

17
  • [...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.

    
loganfsmyth 24.09.2015, 16:59
quelle