好吧,我看到了这个问题的解决方案,但我不清楚为什么它对我不起作用?我使用 socket.io// 这是房间var rooms = { "1": [], "2": [], "3": [], "4": [], "5": []};这是听众socket.on('joinRoom', function (data) {}为什么rooms[1].push(1); // work?为什么rooms["1"].push(1); // work?为什么rooms[data.room].push(1); // not work?为什么rooms["" + data.room].push(1) not work? 为什么rooms[data.room] = [];rooms[data.room] = 1; // work?data.room返回1;
1 回答
慕标琳琳
TA贡献1830条经验 获得超9个赞
即使条件不是那么清楚(特别是,不知道是什么data),以下可能有效的唯一原因:
rooms[data.room] = [];
rooms[data.room] = 1;
同时这不会:
rooms[data.room].push(1);
是否data.room返回了尚未成为关键的东西rooms。
尝试这样做rooms[data.room] = 1;,然后console.log(rooms);您很可能会找到 6 个而不是 5 个。
顺便说一句,当您设置键/访问其值时,无需将您的键转换为字符串。它是自动转换的。它甚至可以转换对象(到 string [object Object])。
添加回答
举报
0/150
提交
取消