我正在使用Lodash库,我需要从我的javascript对象中删除可能的未定义属性,但我想保留null属性。
例如,如果我有这样的对象:
var fooObject = {propA:undefined, propB:null, propC:'fooo'};
我希望输出如下:
{propB:null, propC:'fooo'}
我试过了:
.pickBy(fooObject, _.identity);
但它也会删除空值。 Lodash是否包含一些功能?感谢。
答案 0 :(得分:1)
返回任何非_.isUndefined的内容:
_.pickBy({propA:undefined, propB:null, propC:'fooo'}, function(val){
return !_.isUndefined(val);
});
甚至更好:
_.omitBy({propA:undefined, propB:null, propC:'fooo'}, _.isUndefined);
答案 1 :(得分:1)
尝试:
_.pickBy(fooObject, v => v !== undefined)
答案 2 :(得分:0)
尝试使用.omitBy
方法。
对于未定义和空值。
_.isUndefined
和_.isNull
var fooObject = {propA:undefined, propB:null, propC:'fooo'};
从对象
中删除undefined
值
var newObj= _(fooObject).omitBy(_.isUndefined).value();
console.log(newObj);
包括,如果您要同时删除undefined
和null
var result = _(fooObject).omitBy(_.isUndefined).omitBy(_.isNull).value();
console.log(result);
希望这会有所帮助..!
答案 3 :(得分:-1)
//简单的javascript
var fooObject = {propA:undefined, propB:null, propC:'fooo'};
for(var prop in fooObject)
{
if(fooObject[prop]===undefined)
delete fooObject[prop];
}
console.log(fooObject);