如何仅显示具有指定值的条目的对象键

Posted

技术标签:

【中文标题】如何仅显示具有指定值的条目的对象键【英文标题】:How to display object key of only the entries that have a designated value 【发布时间】:2019-10-03 04:25:26 【问题描述】:

所以我有一个discord.js 对象,它是成员拥有的所有权限(真或假)的列表。我正在尝试遍历这些条目并仅“提取”具有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】:

如果您想获得所有密钥,请使用filter 而不是find

return Object.keys(object).filter(key => object[key] === value);

【讨论】:

哇,从没想过我会对这么简单的答案如此脑残。谢谢! 没问题@Timesis,总是乐于提供帮助。

以上是关于如何仅显示具有指定值的条目的对象键的主要内容,如果未能解决你的问题,请参考以下文章

如何从嵌套对象中获取具有值的所有键

如何在数组中找到具有相同键值的对象?

设置初始值Angular 2反应formarray

如何使用 Swifty 动态创建具有多个键和值的 json 对象

如何在现有 Javascript 对象中添加具有值的动态键? [复制]

如何在不指定键值的情况下获取 JSON 对象的最后一个元素?