像PHP foreach一样循环javascript函数



我想执行这个函数少于3次,但每次都使用不同的值:

socket.broadcast.to(role).emit('login', {
onlineusers: list
});

我有3个角色:非mods, mods和admins。不同角色的list值不同,如下所示:non-mods => nonmodslist, mods => modslist, admins => adminslist

我试着:

roles = {non-mods : nonmodslist, mods : modslist, admins : adminslist}

for(let {non-mods, mods, admins} of roles) {
socket.broadcast.to(role).emit('login', {
onlineusers: list
});

但我真的不知道从那里做什么。我错过了什么?

您可以使用for of循环与Object.entries和解构

let roles = {'non-mods': nonmodslist, 'mods': modslist, 'admins': adminslist};
for (let [role, list] of Object.entries(roles)) {
socket.broadcast.to(role).emit('login', {
onlineusers: list
});
}

请尝试下面的代码

let roles = {'non-mods' : nonmodslist, 'mods' : modslist, 'admins' : adminslist}
for(let rolename in roles) {
socket.broadcast.to(rolename).emit('login', {
onlineusers: roles[rolename]
});
}
for (var x = 0; x < roles.length; x++){
socket.broadcast.to(roles[x]).emit.....
}

像这样试试;

您想要设置一个索引(x)来遍历角色,当它到达roles.length....时停止然后,您可以使用索引

访问特定的角色。

对象迭代可以使用Object.keys(objectReference);

roles = {non-mods : nonmodslist, mods : modslist, admins : adminslist}
for(roleKey of Object.keys(roles)) {
console.log(roles[roleKey]);
// Perform operation using roles[roleKey]
}

相关内容

  • 没有找到相关文章

最新更新