我有一個命令,我想將id語音通道中的用戶寫入陣列。到目前為止,我設法用joinedTimestampetc 撰寫了用戶的整個集合。現在我想從集合中提取id用戶的集合。
我的命令如下所示:
client.on('messageCreate', (message) => {
let waitingroom = message.guild.channels.cache.get("952324088762867722")
let player = [];
let isadmin = message.member.roles.cache.has(adminRole);
if (message.content.toLowerCase() === prefix 'startgame' && isadmin) {
player.push(waitingroom.members);
console.log(player);
}
});
這就是當 2 個用戶在時我從陣列中得到的waitingroom:
[
Collection(2) [Map] {
'392776445375545355' => GuildMember {
guild: [Guild],
joinedTimestamp: 1646940658665,
premiumSinceTimestamp: null,
nickname: null,
pending: false,
communicationDisabledUntilTimestamp: null,
_roles: [Array],
user: [User],
avatar: null
},
'849388169614196737' => GuildMember {
guild: [Guild],
joinedTimestamp: 1647168003344,
premiumSinceTimestamp: null,
nickname: 'Test-Account [Nils]',
pending: false,
communicationDisabledUntilTimestamp: null,
_roles: [],
user: [User],
avatar: null
}
}
]
但我只想要id集合中的用戶。我很感激任何幫助。
uj5u.com熱心網友回復:
更好的解決方案,請參閱接受的答案。
首先,您需要創建一個帶有空陣列的變數。
然后您可以使用.map成員的功能Collection將用戶ID推送到陣列中。
let arr = [];
<Channel>.members.map(user => {
arr.push(user.id);
});
uj5u.com熱心網友回復:
接受的答案有點冗長。Collection#map()回傳一個陣列并接受一個回呼函式,因此您所要做的就是遍歷成員并回傳它們id的 s:
let waitingRoom = message.guild.channels.cache.get('952324088762867722')
let memberIDs = waitingRoom.members.map(member => member.id)
現在,memberIDs是成員的雪花/ID 陣列。無需創建新陣列或使用該push方法。實際上,您永遠不應該真正使用mapwithpush或其他改變陣列的方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/442502.html
標籤:javascript 不和谐 不和谐.js
