gpt4 book ai didi

javascript - Discord.js:是否有可以检查用户是否从排名数组中获得排名的函数

转载 作者:行者123 更新时间:2023-12-04 08:08:26 25 4
gpt4 key购买 nike

我目前正在开发一个不和谐的机器人,它有多个仅用于特定 Angular 色的命令。
我目前拥有允许在数组中使用命令的所有 Angular 色,下面的代码有效。

        for (var i = 0; i < Config.AllowedRanks.length; i++) {
if (message.member.roles.cache.has(Config.AllowedRanks[i])){
console.log("Access Granted")
}
}
但是我如何才能让其他没有该 Angular 色的人都收到访问被拒绝的消息?下面的代码完成了我想要的事情,但当某个 Angular 色不是数组中的第一个 Angular 色时,它也会执行此操作。
        for (var i = 0; i < Config.AllowedRanks.length; i++) {
if (message.member.roles.cache.has(Config.AllowedRanks[i])){
console.log("Access Granted")
} else{
console.log("Access Denied")
}
}
感谢 Bqre 的回答:
        if (Config.AllowedRanks.some(role => message.member.roles.cache.get(role))){
console.log("Access Granted")
} else{
console.log("Access Denied")
}

最佳答案

对于这种特定情况,我们希望使用 .some()方法,循环遍历整个数组并检查是否至少 的元素匹配某个条件。
例如,让我们创建一个 Angular 色 ID 数组:

const roles = ['id1', 'id2', 'id3'];
从这里我们可以做的是,取出我们创建的数组,并检查作者是否至少有 具有上述 ID 之一的 Angular 色使用 .some()方法。
最终代码
const roles = ['id1', 'id2', 'id3'];
if (roles.some(role => message.member.roles.cache.get(role))) console.log('Access Granted.');
else console.log('Access Denied.');
分别地,同样适用于 .every()方法,而是检查数组的所有元素是否与条件匹配 - 在我们的例子中,如果用户具有上述所有 Angular 色。

关于javascript - Discord.js:是否有可以检查用户是否从排名数组中获得排名的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66105210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com