首页 > 解决方案 > 如何仅从 discord.js v12 中的 message.guild.members.fetch() 获取 UserID?

问题描述

我正在尝试随机获得奖品,我想获取整个对象变量,然后将整个事物隔离开来,因此我只获得了用户 ID 的列表

这是我做的一个例子console.log(message.guild.members.fetch())

Promise {
  Collection [Map] {
    '123456789012345678' => GuildMember {        
      guild: [Guild],
      user: [User],
      joinedTimestamp: 1234567890123,
      lastMessageID: '012345678901234567',       
      lastMessageChannelID: '012345678901234567',
      deleted: false,
      _roles: [Array]
    },
    '234567890123456789' => GuildMember {
      guild: [Guild],
      user: [User],
      joinedTimestamp: 1234567890123,
      lastMessageID: null,
      lastMessageChannelID: null,
      premiumSinceTimestamp: null,
      deleted: false,
      _roles: [Array]
    },
    '345678901234567890' => GuildMember {
      guild: [Guild],
      user: [ClientUser],
      joinedTimestamp: 1234567890123,
      lastMessageChannelID: null,
      premiumSinceTimestamp: null,
      deleted: false,
      _roles: [Array]
    }
  }
}

我只想得到该行的123456789012345678一部分'123456789012345678' => GuildMember {

标签: javascriptnode.jsdiscorddiscord.js

解决方案


使用keys方法(继承自Map):

message.guild.messages.fetch().then(members => {
  const userIDs = [...members.keys()]
  // Do something with the IDs here
})

使用异步/等待:

const userIDs = [...(await message.guild.messages.fetch()).keys()]
// Do something with the IDs here

推荐阅读