Javascript:如何向对象属性添加数组值
2016-04-19
1533
以下代码用于 node.js 中的 socket.io 服务器
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var clients=[];
var gamename={};
io.on('connection', function(socket){
socket.on('game', function(data){
gamename[data.gamename]=data.number; //problem is here
});
});
gamename=游戏名称; number=用户 ID;
- 可以有更多游戏;
- 每个游戏可以有更多用户
每当与服务器建立连接时,我都会在客户端发出带有一些数据(包括游戏名称和数字)的游戏事件。因此,每当有新客户端连接到服务器时,服务器就会触发游戏事件。在服务器端的游戏事件中,我想将“number”推送到对象属性 gamename(变量)。
示例:
var games={};
每当有连接时,例如,对于用户 ID 为 34 的游戏扑克,我想执行 var gamename='poker';
gamename[gamename] -> I want this automatically created as array, or anything, but I want to push user id's.
产生的反对意见应该是。
games={'poker' : [34]};
如果我再有一个用户连接到用户 ID 为 45 的扑克,
games={'poker' : [34, 45]};
并且如果一个用户连接到用户 67 的板球游戏
games={'poker' : [34, 45],'cricket' : [67]};
初始对象
games={};
经过一些连接(可以有 n 个连接)
games={'poker' : [34, 45],'cricket' : [67]};
如果我的问题不清楚,我会解释如果有人问的话,请详细说明。 提前谢谢
1个回答
像这样:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var clients=[];
var gamename={};
io.on('connection', function(socket){
socket.on('game', function(data){
gamename[data.gamename] = gamename[data.gamename] || [];
gamename[data.gamename].push( data.number ); //no more problem
});
});
Tudor Constantin
2016-04-19