Hallo Jeena,
Du kannst btw. auch den Prototypen des Array-Objekts erweitern:
Array.prototype.flip = function () {
var flipped = new Array();
for(var i in this) {
if (i == 'flip') continue;
flipped[this[i]] = i;
}
return flipped;
}
Dann kannst Du das ganze auch so schreiben:
newarray = oldarray.flip();
(sofern oldarray ein beliebiges Objekt es Typs Array ist, wenn Du lieber mit Object
arbeitest, kannst Du auch Object.prototype
ändern (und new Object
statt new Array
in die Funktion reinschreiben) - allerdings ist flip() dann für *jedes* Objekt definiert)
Die Geschichte hat nur einen Nachteil: Jedes Array enthält dann auch ein Element "flip", das auf die Funktion "flip" zeigt, d.h. in Schleifen, die alle Elemente durchgehen, musst Du das gesondert behandeln (siehe die obige Funktion selbst).
Viele Grüße,
Christian