对象上的Javascript循环

对象上的Javascript循环,javascript,node.js,Javascript,Node.js,我想在一个对象上循环以查找具有套接字id的对象名,然后在找到它时console.logit 代码: getUsernameBySocketID: function(socketid) { for(var User in Users.Obj) { var u = Users.Obj[User]; if(u.socketID == socketid) { return u.username; } } }, U


我想在一个对象上循环以查找具有套接字id的对象名,然后在找到它时
console.log
it
代码:

getUsernameBySocketID: function(socketid) {
    for(var User in Users.Obj) {
        var u = Users.Obj[User]; 
        if(u.socketID == socketid) {
            return u.username;
        }
    }
},
User: function(data) {
    this.username = data.username;
    this.socketID = data.socketID;
},
编辑:

User.Obj

我向user.obj添加元素,并使用一个函数创建一个新用户:

Users.Obj[id] = new Users.User({username: username, socketID: socketID});
和用户。用户包含:

getUsernameBySocketID: function(socketid) {
    for(var User in Users.Obj) {
        var u = Users.Obj[User]; 
        if(u.socketID == socketid) {
            return u.username;
        }
    }
},
User: function(data) {
    this.username = data.username;
    this.socketID = data.socketID;
},

但是,当我调用函数并将其记录为console.log时,它不会返回任何结果。

我怎样才能解决这个问题?谢谢

我终于在@Watte的帮助下找到了我的问题
Users.Obj
只是空的

最后,我使用@Watte的帮助找到了我的问题
Users.Obj
只是空的

看看,没有足够的信息来回答您的问题。你的
Users.Obj
看起来怎么样?Object.keys会将对象属性转换成数组,我不想这样,我想在所有对象属性上循环,检查是否在函数中调用了socketID==socketID,然后返回I是否尝试控制台。记录当前的“u”变量?也许你的情况永远不会变好true@MadaraUchiha编辑查看没有足够的信息来回答您的问题。你的
Users.Obj
看起来怎么样?Object.keys会将对象属性转换成数组,我不想这样,我想在所有对象属性上循环,检查是否在函数中调用了socketID==socketID,然后返回I是否尝试控制台。记录当前的“u”变量?也许你的情况永远不会变好true@MadaraUchiha编辑