Felix Riesterer: Frage zum Wiki-Artikel ‚from‘

Beitrag lesen

problematische Seite

Liebee Mitlesende, lieber @Orlok,

gerade stöberte ich wieder in "zuletzt aktualisierte Seiten" im Wiki und bin über Array.from gestolpert. Nun meine Verständnisfrage:

Kann man in unterstützenden Browsern Array.from(arg) synonym verwenden, wie die Krücke [].slice.call(arg)?

Genaueres Beispiel:

function init () {
    var labels = [].slice.call(document.getElementsByTagName("label")),
        inputs = Array.from(document.querySelectorAll("input"));

    labels.forEach(function (el, i) {
        // el contains <label>, i contains index number
    });

    inputs.forEach(function (el, i) {
        // el contains <input>, i contains index number
    });
}

Sowohl getElementsByTagName("label"), als auch document.querySelectorAll("label") geben als Wert eine NodeList (eventuell sogar live?) zurück. Möchte man z.B. diese Elemente aus dem DOM entfernen, hätte man beim Iterieren über die NodeList ein Problem, weshalb man da lieber "echte" Arrays haben möchte. Sind die beiden Schreibweisen für die beiden Variablen wirklich synonym, oder habe ich den Wiki-Artikel falsch verstanden? Und wenn sie synonym sind, warum sieht dann das Polyfill dazu bei MDN so irrsinnig kompliziert aus?

Sollten sie synonym sein, dann würde ich dem Artikel einen Hinweis darauf spendieren.

Liebe Grüße,

Felix Riesterer.