Javascript 如何从discord.js中的集合图中获取数据
对于我的机器人在不和谐,我想一个!help命令,该命令循环遍历所有命令,获取名称,并以消息形式返回给用户。我创建了fs来循环我的/commands/文件夹:Javascript 如何从discord.js中的集合图中获取数据,javascript,node.js,npm,discord,discord.js,Javascript,Node.js,Npm,Discord,Discord.js,对于我的机器人在不和谐,我想一个!help命令,该命令循环遍历所有命令,获取名称,并以消息形式返回给用户。我创建了fs来循环我的/commands/文件夹: for (const file of commandFiles) { const command = require(`./commands/${file}`); client.extraCommands.set(command.name, command); } console.log(client.extraComma
for (const file of commandFiles) {
const command = require(`./commands/${file}`);
client.extraCommands.set(command.name, command);
}
console.log(client.extraCommands);
返回如下所示的集合映射:(为简单起见进行了裁剪)
我只需要将每个命令的名称
存储到一个数组中
我试着通过循环找到钥匙,但似乎不起作用
提前感谢您提供的任何帮助看起来键名就是您的命令名,所以这应该可以解决问题
让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
所以,首先,我想我应该做一个循环,遍历所有文件并获得'name'属性。但是,
.keys()
返回映射内所有属性的数组
如果它是一个
映射
,你可以循环使用for(client.extraCommands.keys()){/*将key添加到数组*/}
或者只使用client.extraCommands.keys()
,因为它是一个迭代器,你从来没有说过你需要自己循环来获取密钥。
[...client.extraCommands.keys()] //using map keys
[...client.extraCommands.values()].map(({name})=> name); // using key 'name' from each map value