我有以下对象数组:
{
running: false,
swimming: false,
drawing: true
}
我想只使用具有false属性的对象数组进行过滤。从那里我只想获得数组的键。
例如
[running, swimming]
我的第一部分是通过以下方法删除具有真正布尔值的值:
var filtered = _.pick(hobbies, function(value, key) {return !value;});
什么是最好的方式来平和"当前数组,以便我只有键值?
答案 0 :(得分:3)
正如纯JavaScript
一样,我建议您使用Object.keys
和Array.prototype.filter
var obj = {
running: false,
swimming: false,
drawing: true
};
var items = Object.keys(obj).filter(k => !obj[k]);
console.log(JSON.stringify(items));
答案 1 :(得分:3)
Lodash _.keys()
功能正是您所要求的:
var hobbies = {
running: false,
swimming: false,
drawing: true
};
var filtered = _.keys(_.pick(hobbies, function(value) {return !value;}));
console.log(filtered);
// alternate approach using chain notation
var keys = _
.chain(hobbies)
.pick(v => !v)
.keys();
console.log(keys);

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.9.3/lodash.js"></script>
&#13;
请注意,在Lodash 4.x中,_.pick()
已更改,您应该使用_.pickBy()
aboce。