You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Discord.js中获取用户拥有的指定列表内的角色ID?

实现返回用户拥有的目标角色ID列表

当然可以实现,只需要把原来的some方法换成filter方法,就能筛选出用户实际拥有的、存在于目标角色ID集合中的角色ID。

修改后的代码:

const roleIds = new Set([
'1051468892050429579',
'1051466682357410846', 
'1051466680342833567', 
'1051466670713395144', 
]);

// 从用户角色中筛选出在目标集合里的角色ID
const userOwnedRoleIds = event.member.roles.cache
  .map(role => role.id) // 提取每个角色的ID
  .filter(id => roleIds.has(id)); // 过滤出存在于roleIds中的ID

说明:

  • filter方法会遍历用户的所有角色ID,将符合条件(存在于roleIds集合中)的元素收集成数组返回。
  • 如果用户没有任何目标角色,userOwnedRoleIds会是一个空数组;如果拥有多个,数组里会包含所有匹配的角色ID。
  • 用Set存储目标角色ID的优势保留了:has方法的查询效率是O(1),比数组的includes更高效。

内容的提问来源于stack exchange,提问作者confusedpiglet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 15:25:16