如何获取具有其ID的用户列表(列表)?

时间:2019-02-14 16:23:47

标签: javascript node.js discord.js

我正在尝试找出如何通过其ID以表格形式(数组)获取用户列表。

我已经尝试过了:

let result = message.guild.members.get(id_list)

但这不起作用...

id列表:

var id_list = [ '223515154229231616',
  '447425491041910807',
  '479932358422691840',
  '464536970417143828',
  '299429099611357185',
  '332868897646837762',
  '198346639843262464',
  '266078466972057600',
  '334270225895653379',
  '198884536363253761',
  '216595784286601216',
  '358993909269135371',
  '248894149162565647',
  '396681438688182284',
  '349270173011804171',
  '358319021726236672',
  '216136890963853313',
  '282994966014459915',
  '298171616968572930',
  '257809919036751872',
  '239365876846034944',
  '502162147942596609',
  '449391921840914444',
  '473229490584158208' ]

3 个答案:

答案 0 :(得分:1)

以下应该可以解决问题

let result = id_list.map(id => client.users.get(id));

基本上,您使用.map()遍历所有ID,并获取关联的用户。

您可能希望删除所有未定义的结果(当您的机器人“不知道” 用户链接到特定ID时),在这种情况下,您需要在上一部分之后添加以下内容代码:

result = result.filter(r => r !== undefined);

查看.map().filter()的文档以了解更多信息

答案 1 :(得分:0)

这一次将不适用于一个ID,而不是一个ID。您将需要遍历数组中的ID,我建议为此使用for循环,并使用id_list.length作为参数之一。例如:

for(var i = 0; i <= id_list.length; i++) {
   //make the request to get the member information
}

另外,请确保使用client.users.get('id');可能会更好,因为如果用户发送直接消息,则没有guild属性,因此会引发错误。

答案 2 :(得分:0)

您可以使用

 let result = id_list.map(id => client.users.get(id).tag)

那应该给一个像数组

['User#0000',
'NextUser#4821'
]