2016-08-12 1 views
-1

Unten ist ein fehlerhaftes hartcodiertes Beispiel eines Spielobjekts. Das Spielobjekt soll ein arrayartiges Objekt von Spielern enthalten. Es ist offensichtlich, was die Absicht hier ist, aber bis jetzt verstehe ich es falsch. Ich habe versucht, die Spieler Klammern w/geschweiften Klammern, und oder das Gleichheitszeichen mit einem Doppelpunkt.Mein Objekt innerhalb einer Objektdefinition funktioniert nicht

Was ist das Problem hier?

var game = { 
    gameName : 'Name of Game Instance', 
    players : { 
     player1 : { 
     name:"Tom", 
     score:0 
     }, 
     player2 : { 
     name:"Bob", 
     score:0 
     }, 
     player3 : { 
     name:"Ziggy", 
     score:0 
     } 
    } 
} 
+1

Syntaktisch gibt es nichts falsch mit dem entsandten Code. – undefined

+1

Es gibt kein Problem mit Ihrem Code. Was versuchst du zu erreichen? – James

+0

Es ist überhaupt nicht offensichtlich, was Ihre Intention ist, weil dieser Code funktioniert und genau das tut, wozu er bestimmt ist. Bitte beschreiben Sie das gewünschte Ergebnis. Alle diese Antworten sind reine Spekulationen darüber, was Sie eigentlich wollen. – jfriend00

Antwort

1

Ich glaube, Sie players wollen ein Array von Objekten sein:

var game = { 
    gameName : 'Name of Game Instance', 
    players : [ 
     { 
     name:"Tom", 
     score:0 
     }, 
     { 
     name:"Bob", 
     score:0 
     }, 
     { 
     name:"Ziggy", 
     score:0 
     } 
    ] 
}; 
0

in Ihrem Code game.players ist ein Objekt, damit Sie nicht über Array-Methoden auf sie wie forEach und .length.

Um es zu einem Array zu machen, können Sie nicht einfach die { ... } mit [ ... ] austauschen, da Arrays Schlüssel-Wert-Paare nicht akzeptieren, sie akzeptieren nur Werte und ihr Schlüssel ist implizit ihr Index. Um in der Lage zu sein, auf jeden Spieler zuzugreifen, können Sie das Array Array von Objekten so machen, Array-Zeug auf game.players tun, da sie Arrays sind.

var game = { 
    gameName : 'Name of Game Instance', 
    players : [ 
     { 
     name:"Tom", 
     score:0 
     }, 
     { 
     name:"Bob", 
     score:0 
     }, 
     { 
     name:"Ziggy", 
     score:0 
     } 
    ] 
} 

wenn Sie es als ein Objekt zu halten, können Sie die Schlüssel in einem Array-Form schreiben die folgenden nehmen:

Object.keys(game.players).forEach(function(key) { 
    var currentPlayer = game.players[key] 
}) 
-1

die Spieler als Array von Objekten zu haben. Etwas wie folgt aus:

var game = { 
    gameName : 'Name of Game Instance', 
    players : [ 
     { 
      name: "Tom", 
      score: 0 
     }, 
     { 
      name: "Bob", 
      score: 0 
     }, 
     { 
      name: "Ziggy", 
      score: 0 
     } 
    ] 
} 
+0

Obwohl dies die Frage beantworten könnte, bitte geben Sie jede mögliche Erklärung an, um sicherzustellen, dass die Leute verstehen, was hier passiert. – Randy

0
var game = { 
gameName : 'Name of Game Instance', 
players : [ 
    { 
     name: "Tom", 
     score: 0 
    }, 
    { 
     name: "Bob", 
     score: 0 
    }, 
    { 
     name: "Ziggy", 
     score: 0 
    } 
] 
} 
+1

Obwohl dies die Frage beantworten könnte, bitte geben Sie jede mögliche Erklärung an, um sicherzustellen, dass die Leute verstehen, was hier passiert. – Randy

Verwandte Themen