TL; DR;
Array.prototype.slice.call(nodelist).filter
Die Slice () -Methode gibt ein Array zurück. Das zurückgegebene Array ist eine flache Kopie der Sammlung (NodeList).
Es funktioniert also schneller als Array.from ().
Es funktioniert also genauso schnell wie Array.from ()
Elemente der ursprünglichen Sammlung werden wie folgt in das zurückgegebene Array kopiert:
- Bei Objektreferenzen (und nicht dem eigentlichen Objekt) kopiert Slice Objektreferenzen in das neue Array. Sowohl das ursprüngliche als auch das neue Array beziehen sich auf dasselbe Objekt. Wenn sich ein referenziertes Objekt ändert, sind die Änderungen sowohl für das neue als auch für das ursprüngliche Array sichtbar.
- Bei Zeichenfolgen, Zahlen und Booleschen Werten (nicht String-, Zahlen- und Booleschen Objekten) kopiert Slice die Werte in das neue Array. Änderungen an der Zeichenfolge, Zahl oder dem Booleschen Wert in einem Array wirken sich nicht auf das andere Array aus.
Kurze Erklärung zu den Argumenten
Array.prototype.slice (beginIndex, endIndex)
- Nimmt optionale Argumente beginIndex und endIndex. Wenn sie nicht bereitgestellt werden, verwendet Slices beginIndex == 0 und extrahiert somit alle Elemente aus der Sammlung
Array.prototype.slice.call (Namespace, beginIndex, endIndex)
- nimmt ein Objekt als erstes Argument. Wenn wir eine Sammlung als Objekt verwenden, bedeutet dies wörtlich, dass wir die Slice-Methode direkt von diesem Objekt- Namespace aufrufen. Slice ()
babel
,[...coll]
fordern Sie einfachArray.from(coll)
alles an, was kein istArray
.