如何将服务器中每个用户的 id 放入数组中? (Discord.js v12)

Posted

技术标签:

【中文标题】如何将服务器中每个用户的 id 放入数组中? (Discord.js v12)【英文标题】:How do I get every user's id in a server into an array? (Discord.js v12) 【发布时间】:2020-10-04 16:50:13 【问题描述】:

我需要帮助来获取服务器中的所有用户 ID。我已经尝试了所有解决方案,显然它对我不起作用。

我已经尝试过这个(这与我最相关)

// 获取 Guild 并将其存储在变量“list”下 常量列表 = client.guilds.cache.get("335507048017952771");

// 从 Guild 中遍历 GuildMembers 的集合,获取每个成员的用户名属性 list.members.forEach(member => console.log(member.user.username));

【问题讨论】:

如果您尝试了 all 个 htem,则没有什么可建议的了。 提供一些源代码以获得有用的建议。 好吧,我想描述应该是“我需要帮助以获取服务器中的所有用户 ID。我已经尝试了所有我能找到的解决方案,显然,它对我不起作用。” 【参考方案1】:

公会的成员存储在一个集合中。您可以使用map() 方法创建一个仅包含 ID 的数组。

const Guild = client.guilds.cache.get("335507048017952771"); // Getting the guild.
const Members = Guild.members.cache.map(member => member.id); // Getting the members and mapping them by ID.
console.log(Members);
// --> ["1234567890054356", "1323534709650967", "436567540796390"] etc...

【讨论】:

【参考方案2】:

使用 map 可以正常工作,但 keys() 是另一种解决方案,它返回一个 map 迭代器

const list = <Guild>.members.cache.keys();
list.forEach(id => console.log(id));

如果你想把它变成一个数组,只需使用扩展运算符

const arr = [...list];

【讨论】:

以上是关于如何将服务器中每个用户的 id 放入数组中? (Discord.js v12)的主要内容,如果未能解决你的问题,请参考以下文章

jquery中如何将函数放入数组变量并执行?

如何将用户输入的字符串逐个字符分解并放入数组中?

从 jQuery 集合中获取每个元素的属性值,放入数组中

如何将发布数据放入 CodeIgniter 中的数组中?帖子项目是数组

如何将数组放入数组但像树一样

如何使用数组将数据放入 laravel 会话?