Il m'est un peu difficile de mettre mon problème dans un titre de doublure, alors voici l'affaire. J'ai deux fonctions sur un objet. Ce sont:Lors de l'accès aux propriétés d'un objet dans un tableau à travers une boucle, obtenir seulement le premier élément
returnPlayers: function() {
return this.players;
},
et
returnPlayerNames: function() {
for (var i = 0; i < this.players.length; i++) {
return this.players[i].name;
}
}
La sortie du premier est:
[ Player { socket: Socket { nsp: [Object], server: [Object], adapter: [Object], id: 'CyrH8LGDRtmaWWUzAAAD', client: [Object], conn: [Object], rooms: [Object], acks: {}, connected: true, disconnected: false, handshake: [Object], _events: [Object], _eventsCount: 3 }, name: 'Foo', score: 0 }, Player { socket: Socket { nsp: [Object], server: [Object], adapter: [Object], id: 'nCCYjPFfkd1JaSDXAAAC', client: [Object], conn: [Object], rooms: [Object], acks: {}, connected: true, disconnected: false, handshake: [Object], _events: [Object], _eventsCount: 3 }, name: 'Bar', score: 0 } ]
On peut voir clairement, qu'il ya deux objets dans le tableau. La sortie du second (qui ne devrait renvoyer que des noms) est seulement le nom du premier objet: Foo
Qu'est-ce que je fais mal? La sortie est de console.log()
ofc.
'return' provoque une fonction pour terminer même si la boucle n'a pas fini. Mettez tous les noms dans un tableau et renvoyez-le après la boucle for. – SpiderPig