Struppi: Array an funktion übergeben

Beitrag lesen

Aber if ist in manchen Browsern schneller (in anderen sind beide Varianten identisch)
Ja, klingt komisch, is leider so.

Hat mich auch gewundert.

(v in o) habe ich bewusst so gewählt, weil damit auch intuitiv deutlich wird, dass es nur darum geht, ob v der Name einer  Eigenschaft in o ist, oder nicht.
Bei der if-Variante wird dagegen der Inhalt o[v] abgefragt, nicht die bloße Tatsache, ob einer existiert.

Naja, du kannst auch if(v in o) schreiben, dann wird's noch deutlicher - ist aber eben ein bisschen langsamer.

Auch die Zuweisung von !a.push(v) ist Absicht: o[v] wird wegen der Negation nur mit einem booleschen Wert belegt (immer false), der ohnehin nicht von Bedeutung ist. Deine if-Variante weist unnötig den ganzen Rückgabewert von push zu (die aktuelle Länge von a).

Auch das hatte ich gemacht weil es eine unnötige Operation ist und ob man wirklich irgendetwas spart wenn man statt eines integer Wert einen boolschen Wert nimmt, halte ich für sehr fraglich.

Struppi.