![](/img/trans.png)
[英]How to remove undefined properties from object and elements from array
[英]Remove undefined properties from object
我想递归清除所有未定义的字段,或将空对象作为父对象,如下所示:
例:
{
"a": {
"b": {
"c": undefined,
}
},
"d": undefined,
"e": {
f: undefined,
},
"g": {
"h": 'I',
"j": undefined,
},
"k": "L",
"m": {
"n": {
"o": {
"z": undefined,
}
},
"p": 'toto'
}
}
我期待以下结果:
{
"g": {
"h": 'I',
},
"k": 'L',
"m": {
"p": 'toto'
}
}
谢谢您的帮助
function filter(obj) { for (var key in obj) { if (obj[key] === undefined) { delete obj[key]; continue; } if (obj[key] && typeof obj[key] === "object") { filter(obj[key]); if (!Object.keys(obj[key]).length) { delete obj[key]; } } } return obj; } var data = { "a": { "b": { "c": undefined, } }, "d": undefined, "e": { "f": undefined, }, "g": { "h": 'I', "j": undefined, }, "k": "L", "m": { "n": { "o": { "z": undefined, } }, "p": 'toto' } }; console.log(filter(data));
只需删除这些键并递归进行迭代即可。
function cleanArray(actual) { var newArray = new Object(); newArray=JSON.parse(JSON.stringify(actual)); return newArray; } var obj={ "a": { "b": { "c": undefined, } }, "d": undefined, "e": { f: undefined, }, "g": { "h": 'I', "j": undefined, }, "k": "L", "m": { "n": { "o": { "z": undefined, } }, "p": 'toto' } }; console.log(cleanArray(obj));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.