Javascript 带socket.io的命名数组

Javascript 带socket.io的命名数组,javascript,arrays,node.js,socket.io,Javascript,Arrays,Node.js,Socket.io,因此,我正在创建一个多人游戏,我使用io.emit命令定期向具有数据数组的客户端发送更新 setInterval(function(){ io.emit("sendBlocks", blocksClient); io.emit("sendMoreBlocks",test); }, 100); blocksClient是一个普通数组。 而test是一个命名数组 blocksClient = [{ posX: 0, posY: 0, solid: false }

因此,我正在创建一个多人游戏,我使用io.emit命令定期向具有数据数组的客户端发送更新

setInterval(function(){  
    io.emit("sendBlocks", blocksClient);      
    io.emit("sendMoreBlocks",test);  
}, 100);
blocksClient是一个普通数组。 而test是一个命名数组

blocksClient = [{ posX: 0, posY: 0, solid: false },
  { posX: 1, posY: 0, solid: false },
  { posX: 2, posY: 0, solid: false },]

test = [ block1: { posX: 1, posY: 5 }, block2: { posX: 35, posY: 42 } ]
blocksClient变量在到达客户端时将完全正常工作。 而测试变量到达时将是一个完全空的


有人知道为什么和可以做什么吗?感谢您的帮助:

这是因为javascript中没有命名数组,它们实际上是具有属性的对象,应该如下所示:

{ block1: { posX: 1, posY: 5 }, block2: { posX: 35, posY: 42 } }

这是因为javascript中没有命名数组,它们实际上是具有属性的对象,应该如下所示:

{ block1: { posX: 1, posY: 5 }, block2: { posX: 35, posY: 42 } }

好的,我明白了。但是当它在服务器内部工作时,它看起来很奇怪。但是,当它被发送到客户端时,就没有了。我不知道为什么我要在服务器上工作,但是在我看来,你问题上的标签似乎与nodejs有关。如果客户端基于web,json响应将无效,除非您将其作为对象发送。OP test变量声明的语法无效。它应该在两种环境中都抛出SyntaxError:Unexpected token:。也许这就是为什么他没有得到价值@Benjadahl看看你是如何处理这些错误的。是的,好的,我理解。但是当它在服务器内部工作时,它看起来很奇怪。但是,当它被发送到客户端时,就没有了。我不知道为什么我要在服务器上工作,但是在我看来,你问题上的标签似乎与nodejs有关。如果客户端基于web,json响应将无效,除非您将其作为对象发送。OP test变量声明的语法无效。它应该在两种环境中都抛出SyntaxError:Unexpected token:。也许这就是为什么他没有得到价值@Benjadahl看看你是如何处理这些错误的。