Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript discord.js检查特定用户ID是否具有特定角色ID_Javascript_Node.js_Discord.js - Fatal编程技术网

Javascript discord.js检查特定用户ID是否具有特定角色ID

Javascript discord.js检查特定用户ID是否具有特定角色ID,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我有一些我想要的代码;获取具有特定角色的所有用户(他们的“团队”)。然后,对于特定团队中的每个用户,我想调查他们的其他角色 我将团队(角色)放在一个阵列中,因此我可以循环遍历每个团队 //pop a role to work with for this loop const therole = teams.pop(); //find role for this loop const Role = message.guild.roles.cache.find(role => role.na

我有一些我想要的代码;获取具有特定角色的所有用户(他们的“团队”)。然后,对于特定团队中的每个用户,我想调查他们的其他角色

我将团队(角色)放在一个阵列中,因此我可以循环遍历每个团队

//pop a role to work with for this loop
const therole = teams.pop();

//find role for this loop
const Role = message.guild.roles.cache.find(role => role.name == therole );

//filtered by those with therole for the loop, fill members array with users ids with that role
const Members = message.guild.members.cache.filter(member => member.roles.cache.find(role => role == Role)).map(member => member.user.id);
现在,我有了一个数组成员,其中包含角色为“therole”的用户的成员ID。这部分是有效的

然后,我想对存储在Members数组中的每个成员ID执行的操作是查找该成员并检查它们是否具有各种其他角色(例如,我具有时区角色)

所以我开始循环

for (var i=Members.length; i--;){
但我一直在想如何通过Members数组中的ID查找成员,并检查他们是否有其他角色。我得到的最接近的是

var haseurope = message.member.roles.cache.some(r => r.name === 'Europe');

//Debug log
console.log(i + ' The member is:' + Members[i]);        
console.log(i + ' Has Europe is:' + haseurope); 
成员数组的长度为6个ID,有时我可以使haseEurope等于true 6次,有时等于false 6次,具体取决于我如何定义haseEurope变量。上述示例日志(未命名的ID)

我想发生的是,当我运行
message.member.roles.cache.some(r=>r.name=='Europe')成员零件不会因循环的每次迭代而更改。但我似乎不能做这样的事情

message.Members[i].roles.cache.some(r => r.name === 'Europe');
我如何检查;“对于Members Array中的每个ID,此用户ID是否具有“Europe”角色

感谢大家的帮助!

让members=message.guild.members.cache.array();
让role=message.guild.roles.cache.find(r=>r.name==='Europe');
对于(让成员中的成员){
让hasRole=member.roles.cache.has(role.id);
log(`${member.id}:${hasRole}`);
}
这是一个简单的示例,说明了如何找出哪个用户具有“Europe”角色。
members
是GuildMembers数组。
role
是角色。然后我使用了基本的foreach循环。在
hasRole
中,我们检查该成员是否具有该角色

示例输出:

283929434854129664: true 
292953664492929025: false

这段代码似乎获取了所有服务器成员,并检查它们是否都是“Europe”角色。是否有办法将其限制为仅查找我已保存在名为members的数组中的用户ID?当我运行您的示例时,它似乎输出了服务器上所有30多个成员的成员ID。
283929434854129664: true 
292953664492929025: false