JavaScript 中类似列表理解的对象过滤

jum*_*pap 5 javascript lodash

我有一个简单的数组,看起来像

obj = {1:false, 2:true, 3:true}
Run Code Online (Sandbox Code Playgroud)

我想检索对象中所有值为 true 的键的数组。

在python中你可以做

>>> [key for key in obj if obj[key]]
[2, 3]
Run Code Online (Sandbox Code Playgroud)

在 Javascript 中是否有单行或其他简单的方法来做到这一点?我也可以访问 lodash。

Bru*_*lza -1

您可以在 Firefox 30+ 中执行此操作。

obj = {1:false, 2:true, 3:true};
[for (key of Object.keys(obj)) if (obj[key]) key ]; 
Run Code Online (Sandbox Code Playgroud)

结果

["2", "3"]
Run Code Online (Sandbox Code Playgroud)

目前,它是唯一实现数组理解的浏览器