仅当它的值为 true 时,如何返回对象键名?
我正在使用下划线,我唯一看到的是如何返回键,这很简单,我想尽可能避免冗余迭代:
例子:
Object {1001: true, 1002: false}
我想要一个只有 1001 的数组…
原文由 user3299182 发布,翻译遵循 CC BY-SA 4.0 许可协议
仅当它的值为 true 时,如何返回对象键名?
我正在使用下划线,我唯一看到的是如何返回键,这很简单,我想尽可能避免冗余迭代:
例子:
Object {1001: true, 1002: false}
我想要一个只有 1001 的数组…
原文由 user3299182 发布,翻译遵循 CC BY-SA 4.0 许可协议
还有另一种选择,可以使用两种方法与 Lodash 库一起使用:
_.pickBy
它创建一个由对象属性组成的对象。如果没有附加参数(谓词),则所有返回的属性都将具有 真 值。_.keys(object)
- 从给定的对象创建一个键数组所以在你的例子中它将是:
var obj = {1001: true, 1002: false};
var keys = _.keys(_.pickBy(obj));
// keys variable is ["1001"]
使用 Underscore.js 库,它会非常相似。您需要使用 _.pick
和 _.keys
函数。唯一的区别是 _.pick
需要有谓词函数,即 _.identity
。
所以代码如下:
var obj = {1001: true, 1002: false};
var keys = _.keys(_.pick(obj, _.identity));
// keys variable is ["1001"]
我希望这会有所帮助
原文由 Tom 发布,翻译遵循 CC BY-SA 3.0 许可协议
13 回答13.1k 阅读
7 回答2.3k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.5k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
Object.keys 从对象中获取键,然后你可以根据值 过滤 键
小提琴