我想根据我提供的一组键来从对象中选择定义的值。
说我有一个像这样的对象:
{
_id: '1234'
status: 'complete',
current_task: null,
current_task_attempts: 2
}
我想挑选_id
,status
和current_task
属性,但前提是它们不是null
或undefined
:
{
_id: '1234'
status: 'complete'
}
我目前的解决方案是:
_.pickBy(_.pick(obj, ['_id', 'status', 'current_task']))
但这感觉有点奇怪。是否有单一的lodash功能可以做我想要的?
答案 0 :(得分:0)
这不是一个单一的功能。但是,你可以尝试使用一个序列,它完全和你做的一样,但是更具可读性:
_(obj).pick(['_id', 'status', 'current_task']).pickBy().value();
答案 1 :(得分:0)
这不完全是您的问题,但可能是一个非常常见的情况。
var o = { a: 'Not empty', b: null, c: undefined, d: '', e: 100, f: {}, g: [] };
_.pickBy(o, _.isDefined);
// { a: "Not empty", e: 100, f: {…}, g: Array(0) }