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

标签 javascript lodash

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

obj = {1:false, 2:true, 3:true}

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

在 python 中你可以这样做

>>> [key for key in obj if obj[key]]
[2, 3]

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

最佳答案

您可以在任何支持 Ecma5 的浏览器中使用 Object.keys 和 Array.filter 执行此操作:

> Object.keys(obj).filter(function(i) {return obj[i]});
> ["2", "3"]

关于javascript - JavaScript 中类似列表理解的对象过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26808823/

相关文章:

javascript - HighCharts 导航器在异步数据加载后保持范围。 (延迟加载)

javascript - 如果 Google Apps 脚本库包含多次,是否会多次加载?

javascript - 在使用整页 js 时如何将动画(如向左滑动、淡入等)添加到 div 中?

javascript - 更改颜色代码不起作用

javascript - 设置与点击元素相同偏移量的新元素时偏移位置错误

javascript - 将数组数组中的唯一值合并到数组中

javascript - 按对象内的值和日期对数组进行排序

javascript - 查询具有随机名称的嵌套对象 - lodash/javascript

lodash - 有_.groupBy 的倒数吗?

javascript - 将数组中的所有其他值移动到新数组中