Hallo,
Ich schreibe in meinem Script an verschiedenen Stellen einen Wert in ein Array:
SpielerdatenArray[id][1] = 90
var spielzeit = SpielerdatenArray[id][1];
spielzeit = 90;
Das sieht von außen stark danach aus, als könnte hier eine Objektorientierung helfen.
foo[bar][5].qux.murks.lulz[123] ist natürlich nichts, was man ständig wiederholen will. Aber es ist auch ein Zeichen, dass die Aufgaben nicht sauber getrennt sind und die Daten unstrukturiert gespeichert und gekapselt sind. Dort, wo du die fraglichen Daten lesen und setzen willst, solltest du nur objekt.eigenschaft
bzw. objekt.eigenschaft = …
schreiben müssen. Und eigentlich auch nichts anderes schreiben können.
Hier hast du vermutlich eine Anzahl von Spielen, Spielern und Spielereinsätzen (bspw. hat Nadine Angerer beim Viertelfinalspiel der WM 2011 vermutlich 90 Minuten gespielt). Dann würde ich das auch so in Objekten umsetzen, die ggf. mit Has-many- und Belongs-to-Beziehungen verknüpft sind. Sodass du letztlich nur schreiben musst:
var angerer = new Spielerin({ name: 'Nadine Angerer' });
var einsatz = new Spieleinsatz(angerer, { spielzeit: 90 });
// …
einsatz.spielzeit = 90;
alert(einsatz.spielzeit);
Dass Spieleinsatz
nun in Spielerin
referenziert wird, das Spieleinsatz
in der einer Klasse Spiel
referenziert wird, dass Spielerin
in Mannschaft
referenziert wird… das ist alles unbenommen.
Dort, wo du nun die Spielzeit lesen und setzen wilst, brauchst du jetzt auch nicht mehr alle Daten, sondern nur das das konkrete Objekt. Dadurch reduzierst du die Abhängigkeiten und die Komplexität des Codes.
Ich habe übrigens mal einen Einsteigervortrag zu Objektorientierung in JavaScript gehalten, falls es dich interessiert. Ferner empfehle ich meinen Artikel Organisation von JavaScripten sowie die überarbeitete und ergänzte Version.
Mathias