直接上代码
let obj = {
name:"",
age:null,
num:NaN,
txt:"唯一的truly值"
}
let jsonString = JSON.stringify(obj,function (key,value) {
return value ? value : undefined;
})
JSON.parse(jsonString);
这个方法主要利用JSON.stringify()方法会把undefined过滤掉的特性
以及JSON.stringify(value[, replacer, space])中replacer映射函数
replacer其实是帮我们实现了递归这一步操作,如果目标对象中有属性的值也是对象,replacer函数也会执行到内部,写好过滤条件,将不需要的值返回undefiend,就会触发JSON.stringify忽略undefined的特性
参考文档现代Javascript,建议通篇阅读