JavaScript 多维数组

标签 javascript

我正在创建一个聊天应用程序,但遇到了扩展问题。我想创建一个数组“roomspace”,其中包含多个“房间”,每个房间包含多个“用户”。我显然可以对这个东西进行硬编码,但是对于缩放比例,我需要声明类似 roomspace[][] 的东西。但我无法以这种方式声明,而且我在遍历数组时也遇到了问题。有人可以给我一个如何实现这一点的示例吗?我真的很感激。

最佳答案

这是一个适合您的小模型。我将 roomSpace 设为一个对象,您可以通过名称而不是索引来访问房间。

您还有房间对象的构造函数,它知道如何处理房间

最后一个循环演示了如何遍历整个 roomSpace

您可以动态添加任意数量的房间和任意数量的用户。您可以通过添加更多方法和属性来扩展此模型。

//Your room space
var roomSpace = {};    


//This function returns a room object
function constructRoom() {
    return {                
                users: [],        
                addUser: function(userName) {
                    this.users.push(userName);
                },

                clearUsers: function() {
                    this.users = {};
                }    
            }
}     



//Here you add rooms    
roomSpace['javascript'] = constructRoom();
roomSpace['php'] = constructRoom();

//Add some users
roomSpace['javascript'].addUser('charlie');
roomSpace['php'].addUser('john');


//Clear the whole room space of users
for (var room in roomSpace) {
  roomSpace[room].clearUsers();
}  

关于JavaScript 多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33665133/

相关文章:

javascript - Firebase 查询 : Why is child_added called before the value query in the following code?

javascript - 使用 Javascript 将图像流 (JFIF - JPEG) 格式转换为 DataURI

javascript - Tumblr 静态 uploader 错误

javascript - 对 require.js 感到困惑

javascript - 如何隐藏单选按钮选择的输入字段

javascript - Gulp 通过观察任务来连接和缩小

javascript - $.ajax post 请求头字段Content-Type不允许CORS

javascript - 在 JavaScript 中索引 HTML div 类

javascript - Three.js 为什么使用 for 循环而不是 while

javascript - 如何从javascript中的列表中删除一行