javascript - 如何访问“msg.guild.members.fetch()”中的值
问题描述
这是一段重要的代码 -
const Members = msg.guild.members.fetch();
console.log(Members)
我想访问“成员”中的变量,还想知道它是什么数据类型(对象、数组等)这是日志 -
Promise {
Collection [Map] {
'518759221098053634' => GuildMember {
guild: [Guild],
user: [User],
joinedTimestamp: 1595386815939,
lastMessageID: null,
lastMessageChannelID: null,
premiumSinceTimestamp: null,
deleted: false,
_roles: [Array],
nickname: null
},
'680036979106512914' => GuildMember {
guild: [Guild],
user: [User],
joinedTimestamp: 1594698809775,
lastMessageID: null,
lastMessageChannelID: null,
premiumSinceTimestamp: null,
deleted: false,
_roles: [Array]
},
'717347622532153396' => GuildMember {
guild: [Guild],
user: [User],
joinedTimestamp: 1595919969136,
lastMessageID: '738997364949254154',
lastMessageChannelID: '735330127944220725',
premiumSinceTimestamp: null,
deleted: false,
_roles: [Array],
nickname: null
},
'730309712133881916' => GuildMember {
guild: [Guild],
user: [User],
joinedTimestamp: 1594954679836,
lastMessageID: null,
lastMessageChannelID: null,
premiumSinceTimestamp: null,
deleted: false,
_roles: [Array],
nickname: null
},
'730624908748521613' => GuildMember {
guild: [Guild],
user: [User],
joinedTimestamp: 1594698780260,
lastMessageID: null,
lastMessageChannelID: null,
premiumSinceTimestamp: null,
deleted: false,
_roles: [Array],
nickname: null
},
'738658236957458472' => GuildMember {
guild: [Guild],
user: [ClientUser],
joinedTimestamp: 1596183671593,
lastMessageID: '738997347387965531',
lastMessageChannelID: '735330127944220725',
premiumSinceTimestamp: null,
deleted: false,
_roles: [Array],
nickname: null
}
}
}
例如,您如何存储此行中的用户 ID:
'518759221098053634' => GuildMember {
我认为这个问题有一个重复,但我认为那里的解决方案已经过时或使用不同的语言。
解决方案
- 如果您提供UserResolvable作为第一个参数,则为 GuildMember 。
- 如果您不提供任何内容作为第一个参数,则包含公会中所有成员的集合。
message.guild.members.fetch("UserID").then(member => {
// This will return a single GuildMember object, if found.
console.log(`Found ${member.user.tag}. They are ${member.presence.status}.`);
}).catch(e => console.log("Couldn't fetch the member."));
// This will return a Collection containing all members in the Guild.
message.guild.members.fetch().then(members => {
// To store the user id(s) you can map the Collection by ID:
const IDs = members.map(user => user.id);
// --> ["UserID", "UserID", "UserID", "UserID"]
// To store certain id(s) you can use the filter method of Collection:
const OnlineMembers = members.filter(member => member.presence.status == "online");
}).catch(e => console.log("Couldn't fetch members."));
参考:
推荐阅读
- python-3.x - 将文件从一个目录移动到另一个目录
- macos - 仅在 Mac OS Safari 上的 CSS 列布局问题
- c# - 通过 IHttpHandler 序列化 ProtoBuf 会产生无效结果
- r - 是否可以在 Shiny Server 上使用 .htaccess|.htpasswd ?
- c++ - 在抛出 __gnu_cxx::__concurrence_lock_error 的实例后调用终止
- android - 如何在我的 webView 之外打开外部链接?
- matplotlib - 饼图中每个标签的不同颜色
- c# - 无法访问服务器上的 sqlite 数据库
- django-rest-framework - 无法在 django-rest API 中使用 POST 请求存储数据
- reactjs - 如何使用条件更改数组中特定值的状态