寻找直接对对象进行深度清理原始属性值的简单解决方案,例如:
var filled = {
levelOneObj: {
property: 'primitive'
levelTwoObj: {
property: 'primitive value'
},
levelTwoArray: ['primitive', 123]
}
}
cleanPrimitives(filled);
var filled = {
levelOneObj: {
levelTwoObj: {
},
levelTwoArray: []
}
}如果库中已经有了解决方案,我不想重新发明方向盘--感谢任何解决方案或帮助。
发布于 2014-10-30 19:43:48
这应该是可行的:
function clean_obj(obj) {
for(var k in obj) {
if(typeof obj[k] == "object"
&& obj[k] !== null
&& !(obj[k] instanceof Array)
&& !(obj[k] instanceof String)
&& !(obj[k] instanceof Number)) {
clean_obj(obj[k]);
continue;
}
switch(typeof obj[k]) {
case 'string':
case 'number':
delete obj[k];
break;
default:
obj[k] = [];
}
}
}用法:
var my_obj = {..};
clean_obj(my_obj);https://stackoverflow.com/questions/26661642
复制相似问题