【发布时间】:2014-10-14 18:51:36
【问题描述】:
有没有一种干净的方法可以从对象中删除未定义的字段?
即
> var obj = { a: 1, b: undefined, c: 3 }
> removeUndefined(obj)
{ a: 1, c: 3 }
我遇到了两种解决方案:
_.each(query, function removeUndefined(value, key) {
if (_.isUndefined(value)) {
delete query[key];
}
});
或:
_.omit(obj, _.filter(_.keys(obj), function(key) { return _.isUndefined(obj[key]) }))
【问题讨论】:
-
您的问题是什么?您的解决方案已经满足您的需求(分别是破坏性和非破坏性的)。
-
你想让它干净多少,它已经干净了!
-
我只会使用
_.filter(obj, function(v) { return _.isUndefined(v)}) -
我想知道这些答案中哪个最快?
-
您的
omit示例简化为_.omit(obj, _.isUndefined)(仅下划线)
标签: javascript object field undefined