JavaScript创build像这样的数据结构的对象

如果可能,我想创build一个具有类似数据结构的对象。 我必须为每个玩家创build一个新的对象吗? 有人能告诉我怎么样?

players players.name='John' players.John.age='12' players.John.adress='London ..' players.John.telnumber='09876587655' 

EDIT1

对不起,我知道这是基本的。 我只是问一个更多的问题,他们会尝试学习更好的JavaScript。 我需要将“事件”中存储的数据传递给对象。“event”.id(像players.John.id代替players.event.id)对不起,我的英语不好。

 // in app.js var fs = require('fs'); var socketio = require('socket.io'); Tail = require('tail').Tail; var express = require('express'); var http = require('http'); var colors = require('colors'); var app = express() , server = require('http').createServer(app) , io = socketio.listen(server); // socket needs to listen on http server server.listen(9099); app.use(express.static(__dirname + '/public')); var port = process.env.PORT || 3000; app.listen(port, function() { console.log('\r\n'); console.log("Express listening on port " + port +'.'.green); }); // Routing //app.use(express.static(__dirname)); // usernames which are currently connected to the chat //var players = []; var players = {}; io.sockets.on('connection', function(socket) { // do all of your socket work in here console.log('\r\n'); console.log("Connection".green); var sessionid = socket.id; console.log(sessionid); // Success! Now listen to messages to be received socket.on('message',function(event){ console.log('Received message:',event); }); socket.on('add user',function(event){ console.log('New User:',event); // we store the username in the socket session for this client socket.username = event; // add the client's username to the global list players.event = {}; players.event.id = sessionid; //players.John.foo = "yeah" //players.John.name = "John" console.log(players); socket.emit('login', {}); // echo globally (all clients) that a person has connected socket.broadcast.emit('user joined', { username: socket.username }); }); //socket.emit('start', 'newround'); }); 

EDIT2

得到它的工作。

 // in app.js var fs = require('fs'); var socketio = require('socket.io'); Tail = require('tail').Tail; var express = require('express'); var http = require('http'); var colors = require('colors'); var app = express() , server = require('http').createServer(app) , io = socketio.listen(server); // socket needs to listen on http server server.listen(9099); app.use(express.static(__dirname + '/public')); var port = process.env.PORT || 3000; app.listen(port, function() { console.log('\r\n'); console.log("Express listening on port " + port +'.'.green); }); // Routing //app.use(express.static(__dirname)); // usernames which are currently connected to the chat //var players = []; var players = {}; io.sockets.on('connection', function(socket) { // do all of your socket work in here console.log('\r\n'); console.log("Connection".green); var sessionid = socket.id; console.log(sessionid); // Success! Now listen to messages to be received socket.on('message',function(event){ console.log('Received message:',event); }); socket.on('add user',function(event){ console.log('New User:',event); // we store the username in the socket session for this client socket.username = event; // add the client's username to the global list players[event] = {}; players[event].id = sessionid; //players.John.foo = "yeah" //players.John.name = "John" console.log(players); socket.emit('login', {}); // echo globally (all clients) that a person has connected socket.broadcast.emit('user joined', { username: socket.username }); }); //socket.emit('start', 'newround'); }); 

 var name = "John"; var players = {}; players[name] = {}; players[name].age = '12'; players[name].address = "address"; players[name].telnumber = "tel"; 

你正在寻找一个players对象,个别玩家的名字引用。 所以:

 var players = {}; players['John'] = { 'age' = 12, 'address' = 'London...', 'telnumber' = '09876587655' }; 

你也可以作为players.John访问“约翰”。约翰,但是如果任何一个名字包含空格的话,那会变得棘手。

同样,玩家属性可以通过以下方式访问:

 players.John['age'] = 13; 

要么

 players.John.age = 13;