如何使用lodash从对象中删除未定义和空值?
2022-08-30 00:57:00
我有一个Javascript对象,比如:
var my_object = { a:undefined, b:2, c:4, d:undefined };
如何删除所有未定义的属性?错误属性应保留。
我有一个Javascript对象,比如:
var my_object = { a:undefined, b:2, c:4, d:undefined };
如何删除所有未定义的属性?错误属性应保留。
您可以简单地链接 和 组合,并通过延迟计算获得结果。_.omit()
_.isUndefined
_.isNull
var result = _(my_object).omit(_.isUndefined).omit(_.isNull).value();
2016 年 3 月 14 日更新:
正如 dylants 在注释部分中提到的,您应该使用 _.omitBy() 函数,
因为它使用谓词而不是属性。您应该将其用于lodash版本及更高版本。4.0.0
var result = _(my_object).omitBy(_.isUndefined).omitBy(_.isNull).value();
2016 年 6 月 1 日更新:
正如Max Truxa所评论的那样,lodash已经提供了一个替代的_.isNil
,它可以检查和:null
undefined
var result = _.omitBy(my_object, _.isNil);
如果要删除所有错误值,则最紧凑的方法是:
对于 Lodash 4.x 及更高版本:
_.pickBy({ a: null, b: 1, c: undefined }, _.identity);
>> Object {b: 1}
对于传统 Lodash 3.x:
_.pick(obj, _.identity);
_.pick({ a: null, b: 1, c: undefined }, _.identity);
>> Object {b: 1}