我正在尝试找出如何通过其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' ]
答案 0 :(得分:1)
以下应该可以解决问题
let result = id_list.map(id => client.users.get(id));
基本上,您使用.map()
遍历所有ID,并获取关联的用户。
您可能希望删除所有未定义的结果(当您的机器人“不知道” 用户链接到特定ID时),在这种情况下,您需要在上一部分之后添加以下内容代码:
result = result.filter(r => r !== undefined);
答案 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'
]