对象上的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编辑