即时通讯使用socket.io v1.3.5创建聊天室,现在我有一个代码:

console.log(socket.rooms);

它得到输出:
[ 'pBtWJZqN23xAJw0sAAAE', 'test' ]
[ 'GPnwtq3gi9t1RZcCAAAD', 'Lobby' ]
[ 'n7tTlvoH1M7foT3ZAAAC', 'Lobby' ]

我在2个房间“大厅”和“测试”中有3个socket.id。我想得到一个房间名称数组,如下所示:
var listroom = ['Lobby','test']

Tks的阅读。

最佳答案

这是不正确的回应:

[ 'pBtWJZqN23xAJw0sAAAE', 'test' ]
[ 'GPnwtq3gi9t1RZcCAAAD', 'Lobby' ]
[ 'n7tTlvoH1M7foT3ZAAAC', 'Lobby' ]

让我猜测实际上是:
[['pBtWJZqN23xAJw0sAAAE', 'test'], ['GPnwtq3gi9t1RZcCAAAD', 'Lobby'], ['n7tTlvoH1M7foT3ZAAAC', 'Lobby']]

如果不是,请纠正我。

只需遍历数组并收集值即可:
var values = [];
for (var i = 0; i < socket.rooms.length; i++)
{
    var room = socket.rooms[i];
    if (values.indexOf(room[1]) === -1) values.push(room[1]);
}

console.log(values);

JS Fiddle工作演示:http://jsfiddle.net/bcbctaLd/

09-29 23:51