簡體   English   中英

如何從discord.js中的Collection Map獲取數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM