Как получить данные с Коллекционной Карты в разногласиях. js - PullRequest
1 голос
/ 10 марта 2020

Для моего бота, находящегося в раздоре, мне нужна команда! Help, которая перебирает все команды, получает их имя и возвращает их в сообщении обратно пользователю. Я создал fs в l oop через мою папку / 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 каждой команды в массиве.

Я пытался перебрать ключ, чтобы получить ключ, но, похоже, это не работает ...

Заранее благодарен за любую помощь

Ответы [ 3 ]

1 голос
/ 10 марта 2020

Похоже, что имена клавиш - это имена ваших команд, так что это должно сработать.


let keys = Array.from(client.extraCommands.keys());

0 голосов
/ 16 марта 2020

Итак, сначала я подумал, что я должен сделать al oop to go через все файлы и получить атрибут 'name'. Однако .keys() возвращает массив для всех свойств внутри карты Документация

0 голосов
/ 10 марта 2020

Обе строки кодов вернут тот же результат, что и вы.

[...client.extraCommands.keys()] //using map keys
[...client.extraCommands.values()].map(({name})=> name); // using key 'name' from each map value
...