Как отобразить ключ объекта только тех записей, которые имеют обозначенное значение - PullRequest
1 голос
/ 16 мая 2019

Итак, у меня есть discord.js объект, который представляет собой список всех разрешений (true или false), которые имеет член. Я пытаюсь перебрать эти записи и «извлечь» только те, которые имеют значение true. Я дошел до того, что смог выбрать отдельную запись, основываясь на ее значении, но он возвращает только одну запись, поскольку я еще не перебираю ее.

Я попытался вставить функцию в цикл for / in. Но я считаю, что я сделал это неправильно, так как он не фильтровал записи по их значениям.

Это код, который у меня сейчас есть, который будет отображать единственную запись.

let memPerms = message.member.permissions.serialize(true)
    function getKeyByValue(object, value) {
        return Object.keys(object).find(key => object[key] === value);
    }
    message.channel.send(getKeyByValue(memPerms, true))

Краткосрочный, я хочу иметь возможность console.log вывод, где он отображает все записи, которые являются истинными внутри объекта. В долгосрочной перспективе я отправлю эти записи участнику внутри раздора. Но мне нужна только помощь, чтобы достичь своей краткосрочной цели, так как после этого все в порядке с моими способностями.

1 Ответ

2 голосов
/ 16 мая 2019

Если вы хотите получить все ключи, используйте filter, а не find:

return Object.keys(object).filter(key => object[key] === value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...