Frage zum Wiki-Artikel ‚from‘
bearbeitet vonLiebee Mitlesende,
lieber @Orlok,
gerade stöberte ich wieder in "zuletzt aktualisierte Seiten" im Wiki und bin über `Array.from{: .language-javascript} gestolpert. Nun meine Verständnisfrage:
Kann man in unterstützenden Browsern `Array.from(arg)`{: .language-javascript} synonym verwenden, wie die Krücke `[].slice.call(arg)`{: .language-javascript}?
Genaueres Beispiel:
~~~ javascript
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")`{: .language-javascript}, als auch `document.querySelectorAll("label")`{: .language-javascript} 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](https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Polyfill) so irrsinnig kompliziert aus?
Sollten sie synonym sein, dann würde ich dem Artikel einen Hinweis darauf spendieren.
Liebe Grüße,
Felix Riesterer.
Frage zum Wiki-Artikel ‚from‘
bearbeitet vonLiebee Mitlesende,
lieber @Orlok,
gerade stöberte ich wieder in "zuletzt aktualisierte Seiten" im Wiki und bin über `Array.from{: .language-javascript} gestolpert. Nun meine Verständnisfrage:
Kann man in unterstützenden Browsern `Array.from(arg){: .language-javascript} synonym verwenden, wie die Krücke `[].slice.call(arg){: .language-javascript}?
Genaueres Beispiel:
~~~ javascript
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")`{: .language-javascript}, als auch `document.querySelectorAll("label")`{: .language-javascript} 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](https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Polyfill) so irrsinnig kompliziert aus?
Sollten sie synonym sein, dann würde ich dem Artikel einen Hinweis darauf spendieren.
Liebe Grüße,
Felix Riesterer.