要求:

一个JSON对象,可能包含一些空值或空字符串。在显示该页面的时候,我们要满足空值显示n /,但一些值允许是空的。因此,它是希望,空值将被设置为N / A的过滤,例如,如果学生的年龄和成绩要显示N /一空,与性别或评论都是空的,他们不这样做。复制代码代码如下:
var学生{ {

性:
年龄:
数字:01,
分数:{
{
主语:英语
得分:50,
注释:
},
{
主题:计算机
得分:
注释:缺席
}
}

};
var排除

1 / /方法验证对象
validateobj1 =功能(obj,除外){
VaR值;
对于(OBJ VAR键){
价值= obj {key};
如果(美元。ISArray(值)){
obj = validatearray1(obj,关键,除外);
} else if(($。内部数组(关键,除外)=(1)美元。为(价值))){
obj {key} = / ;
}
}

返回对象;

}

validatearray1 =功能(obj,关键,除外){
VaR子值;
对于(var i = 0,长度= obj {key}。长度;i <长度;i++){
(VaR子为OBJ {关键} {我}){
子值= obj { } { } {我关键子项};
如果(($。内部数组(子项,除外)=(1)美元。为(子值))){
obj { } { } {我关键子项} = / ;
}
}
}

返回对象;
}

2 / /方法验证对象
validateobj2 =功能(obj,除外){
美元。每个(obj,功能(键,值){
如果(美元。ISArray(值)){
obj = validatearray2(obj,关键,除外);
} else if(无效(键,值除外)){
obj {key} = / ;
}
});

返回对象;
}

validatearray2 =功能(obj,关键,除外){
对于(var i = 0,长度= obj {key}。长度;i <长度;i++){
美元。每个(obj {重点} {我},功能(子项,子值){
如果(无效(子项,子值,排除)){
obj { } { } {我关键子项} = / ;
}
});
}

返回对象;
}

无效=功能(键,值,排除){
返回(($。内部数组(关键,除外)=(1)美元。为(价值)))真的假的;
}

美元。为=功能(obj){
返回(obj美元。修剪(obj)| |!=);
};


方法1的结果



方法2的结果