【问题标题】:How do I find all members who don't have a role? discord.js v12如何找到所有没有角色的成员?不和谐.js v12
【发布时间】:2020-10-24 17:16:31
【问题描述】:

我正在尝试查找所有没有特定角色的成员。这是我能想到的代码:

message.guild.members.forEach(member => if (!member.roles.cache.has('role id') {
  console.log("Doesn't have the role.")
}));

【问题讨论】:

  • 我不知道discord,但我知道message.guild.members是一个数组,为了帮助你请展示message.guild.members的一些示例数据
  • 它不是一个数组,它是一个管理器,<Manager>.cache 是一个集合,它是一个地图的扩展,无论哪种方式,它们的 forEach 方法都非常相似

标签: javascript node.js discord discord.js


【解决方案1】:

您的 JS sytnax 错误,您正在交换 .cache 而不是 .cache

message.guild.members.cache.forEach(member => {
  if(!member.roles.cache.has(role_id) {
     console.log("Doesn't have the role");
  }
});

另请看:

const invalid =  message.guild.members.cache
    .filter(member => member.roles.cache.has(role_has));

forEach 接受回调,如果你想使用 if 语句,你仍然需要括号

【讨论】:

  • 第二个选项有效,但我如何找到数组的长度?当我做 invalid.length 它返回 undefined。
  • 它是一个集合,是 JS 原生 Map 类的扩展,它有一个 size 属性而不是长度。 invalid.size
猜你喜欢
  • 2018-10-22
  • 2021-06-19
  • 2021-02-16
  • 2020-11-22
  • 2021-10-22
  • 2020-10-20
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
相关资源
最近更新 更多