我需要获得一个具有对象特定键值的array.

假设有这个对象(可选的一些不同的键)

{
    username: 'bla',
    admin: true,
    editor: true,
    user: false,
    foo: 'bar'
}

我只需要处理键admineditoruser,并在一个数组中获取这些键,如果它们的值是true.因此,在示例中,结果应为:

['admin', 'editor']

如果这三个键的值都是false,那么它应该返回一个空array.

我会先做一个过滤器:

obj.filter(e => ['admin', 'editor', 'user'].indexOf(e) > -1 && !!e)

然后拔出 keys ?

推荐答案

由于您已经有了字段列表,只需在that上应用.filter调用:

const obj = {
    username: 'bla',
    admin: true,
    editor: true,
    user: false,
    foo: 'bar'
};

const fields = ['admin', 'editor', 'user'];
const result = fields.filter(field => obj[field] === true);
console.log(result);

Javascript相关问答推荐

阿波罗返回的数据错误,但在网络判断器中是正确的

如何将多维数组插入到另一个多维数组中?

第三方包不需要NODE_MODULES文件夹就可以工作吗?

为什么这个.add.group({})在教程中运行得很好,但在我的游戏中就不行了?

如何在下一个js中更改每个标记APEXCHARTS图表的 colored颜色

使用createBrowserRoutVS BrowserRouter的Reaction路由

谷歌饼图3D切片

rxjs在每次迭代后更新数组的可观察值

使用Library chart.js在一个带有两个y轴的图表中绘制两个数据集

将字体样式应用于material -UI条形图图例

如何处理不带参数的redux thunk payloadCreator回调函数?

我想为我的Reaction项目在画布上加载图像/视频,图像正在工作,但视频没有

观察子组件中的@Output事件emits 器?

如何导入我在Web Worker创建的函数?

当我单击一个按钮时,所有按钮都会自动单击

typewriter 效应和容器大小

Zimjs库:如何让ZIM帧初始化日志(log)消失

RXJS相依可观量

在Reaction-Router-DOM v6中使用菜单的共享布局时出现问题

.使用OR运算符查找以侦听更改