Quiero escribir:
socket.on("create-room", (roomID)=> socket.room = roomID) let userS_selected_room = 'f2eac135-eafd-49e1-adc7-c89351703896'; for(room in socket.rooms){ if(room === userS_selected_room) {do_stuff()} }No entiendo estos: Map(4), [Set]
consola.log(socket.salas)
Set(4) { 'zBROv1Lug0XhoQxCAAAB', 'room1', '9e9ecaa6-473a-43a6-9ab7-60ff034ab614', '1dc1547c-d265-4d5a-bd3f-9a5d37bf883a' }consola.log(socket)/
... rooms: Map(4) { '6Otk--hk5SHOVRcrAAAD' => [Set], //socket id 'room1' => [Set], 'f2eac135-eafd-49e1-adc7-c89351703896' => [Set], //this is room id '91fdf074-a1e7-493b-97b9-5a6050095697' => [Set] //this is room id }, ...Esa salida le dice que socket.rooms es un objeto Map , que asigna claves (como '6Otk--hk5SHOVRcrAAAD' ) a objetos Set . Puede recorrer el mapa usando for-of (no for-in ):
for (const [roomid, room] of sockets.rooms) { // ...here, `roomid` will be the ID of the room, and // `room` will be a `Set`... } Si no necesita las ID de las habitaciones, puede usar el método de values y repetir su resultado:
for (const room] of sockets.rooms.values()) { // ...here, `room` will be a `Set`... } O si tiene una ID de habitación, obtenga el Set para esa habitación a través de get :
const room = socket.rooms.get(roomID); Tendrá que consultar la biblioteca que esté utilizando para llenar socket.rooms para averiguar qué contienen los objetos Set , pero para recorrer los elementos del conjunto, usaría for-of nuevamente:
for (const whatever of room) { // ...use `whatever`... }