【发布时间】:2018-04-28 00:40:27
【问题描述】:
我有一个嵌套对象,如果值为 null 或未定义,我想删除所有键/值对。我设法让下面的代码正常工作,但它没有检查嵌套的键/值对,想知道是否有人可以帮我弄清楚需要在代码中添加什么?
var myObj = {
fName:'john',
lName:'doe',
dob:{
displayValue: null,
value: null
},
bbb:null
};
function clean(obj) {
for (var propName in obj) {
if (obj[propName] === null || obj[propName] === undefined || obj[propName] === '') {
delete obj[propName];
}
}
return obj;
}
console.log(clean(myObj));
上面的代码完成了删除 'bbb' 及其值的工作,我也希望对由 'dob' 表示的嵌套对象执行相同的操作。
https://jsbin.com/mudirateso/edit?js,console,output
非常感谢任何帮助。
【问题讨论】:
-
你需要编写一个递归函数,在任何子对象上调用
clean()。 -
StackOverflow 期待你 try to solve your own problem first,我们也 don't answer homework questions。请更新您的问题以在minimal, complete, and verifiable example 中显示您已经尝试过的内容。如需更多信息,请参阅how to ask good questions,并拨打tour of the site :)
标签: javascript javascript-objects