[英]How to get data from Collection Map in discord.js
對於我不和諧的機器人,我想要一個 !help 命令,它循環遍歷所有命令,獲取名稱,並在消息中將它們返回給用戶。 我創建了fs來循環我的 /commands/ 文件夾:
for (const file of commandFiles) {
const command = require(`./commands/${file}`);
client.extraCommands.set(command.name, command);
}
console.log(client.extraCommands);
返回一個看起來像的集合映射:(為了簡單起見裁剪)
Collection [Map] {
'args-info' => {
name: 'args-info',
execute: [Function: execute]
},
'channel-info' => {
name: 'channel-info',
execute: [Function: execute]
}
我所需要的只是將每個命令的name
存儲到一個數組中。
我試過循環獲取密鑰,但這似乎不起作用......
在此先感謝您的幫助
看起來鍵名是你的命令名,所以這應該可以解決問題。
let keys = Array.from(client.extraCommands.keys());
兩行代碼都將返回您想要的相同結果。
[...client.extraCommands.keys()] //using map keys
[...client.extraCommands.values()].map(({name})=> name); // using key 'name' from each map value
因此,起初,我認為我應該循環遍歷所有文件並獲取“名稱”屬性。 但是, .keys()
為地圖文檔中的所有屬性返回一個數組
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.