Mit der Referenz könntest du dann arbeiten:
var spielzeit = Spielerdaten[0][0];
var test = spielzeit.x; // lesen
spielzeit.x = 90; // schreiben
>
> Das dürfte Ernüchterung bringen.
Nö, tuts nicht. Das sieht irgendwie schon sauberer ist und kommt dann halt dem näher, was man z.B. von jQuery her kennt.
> Oder Variante 2:
> ~~~javascript
var test = [0,1,2];
> test.forEach( function( val, i, src ){ src[i] = val * 10 } );
Oder Variante 3:
var test = [0,1,2];
test = test.map( function( x ){ return x * 10; } );
>
> Wie weit die Beispiele auf deinen konkreten Anwendungsfall übertragbar sind, kann ich dir natürlich nicht verraten. Aber du darfst gern noch was mehr Code zeigen.
Ich glaube, damit wäre mein Code schon optimierbar, das wäre sicherlich viel schneller. Manchmal geht es halt schneller redundanten Spaghetticode zu schreiben, also zumindest dann, wenn man sich erst reindenken muss und nicht der Hellste is :-)
Ich setze meine betreffende Funktion einfach mal mit rein, auch wenn das sicherlich nicht das Gelbe vom Ei ist. Sie tut aber erstmal was sie soll, sie berechnet die Einsatzzeit eines Spielers in einem Spiel anhand verschiedener Werte aus einem mehrdimensionalen Array und schreibt diese Zeit dann ebenfalls in das Array.
Na ich bin ja mal gespannt... :-)
~~~javascript
function sumSpielzeit(id) { // id übergibt die ID des Spielers
var zeit = 90;
var einsatz = SpielerdatenArray[id][0]; // Einsatz 0/1
var eingew = SpielerdatenArray[id][2]; // Einwechslung 0/Minute
var ausgew = SpielerdatenArray[id][3]; // Auswechselung 0/Minute
var gelb_rot = SpielerdatenArray[id][6]; // Gelb-Rot 0/Minute
var rot = SpielerdatenArray[id][7]; // Rot 0/Minute
// wenn kein Einsatz, alle Werte des Spieler-Arrays auf 0
if (einsatz === 0) {
for (n in SpielerdatenArray[id]) {
SpielerdatenArray[id][n] = 0;
}
}
// wenn Einsatz=1
else {
// wenn Spieler eingewechselt
if(eingew !== 0) {
// wenn Spieler ausgewechselt
if(ausgew !==0) {
SpielerdatenArray[id][1] = (ausgew)-(eingew);
}
// wenn raus durch gelb_rot
else if(gelb_rot !==0) {
SpielerdatenArray[id][1] = (gelb_rot)-(eingew);
}
// wenn raus durch rot
else if(rot !==0) {
SpielerdatenArray[id][1] = (rot)-(eingew);
}
// wenn nur eingewechselt
else {
SpielerdatenArray[id][1] = zeit-(eingew-1);
}
}
// wenn Spieler nicht eingewechselt
else {
// wenn Spieler ausgewechselt...
if(ausgew !==0) {
SpielerdatenArray[id][1] = ausgew-1;
}
else if(gelb_rot !==0) {
SpielerdatenArray[id][1] = gelb_rot-1;
}
else if(rot !==0) {
SpielerdatenArray[id][1] = rot-1;
}
// wenn weder ein- noch ausgewechselt
else {
SpielerdatenArray[id][1] = zeit;
}
}
} // else einsatz
document.getElementById('zeit['+id+']').innerHTML = SpielerdatenArray[id][1];
} // function