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

Discord.js机器人角色赋予指令:判断角色ID是否在指定数组中

Discord.js角色匹配指令修正

你当前的代码逻辑存在问题:直接用==把单个角色ID和整个数组做比较,这永远不会返回true,自然没法触发正常执行的逻辑。

要实现「选中角色ID匹配数组中任意一项则执行指令」的需求,你需要用数组的includes()方法来做判断,同时注意Discord.js里的角色ID是字符串类型,所以要保证数组里的ID类型和testR.id一致,具体修改如下:

// 把ID存为字符串,和Discord.js返回的ID类型统一
let allowedRoleIds = [
  "1024591717820813322",
  "1023191063449571348"
];

// 用includes判断ID是否在允许列表中
if (allowedRoleIds.includes(testR.id)) {
  interaction.reply({ content: `worked` });
} else {
  // 不匹配时终止执行,可按需添加提示
  interaction.reply({ content: "该角色不在允许范围内,指令终止。" });
  return; // 终止后续代码执行
}

如果你的testR.id是数字类型(比如手动做了类型转换),数组里可以保留数字,但更推荐统一用字符串,避免类型不匹配导致的判断错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:45:34