【发布时间】:2016-10-24 07:57:48
【问题描述】:
我最初收到的回复是
var o={
"StudentInfo": [{
"Name1": [{
"100": {
"a": "12"
}
}, {
"101": {
"a": "50"
}
}]
}, {
"Name2": [{
"102": {}
}, {
"103": {
"b": "50"
}
}]
}]
}
我有一个 JSON 对象,经过一些操作,对象为空(如空对象 102),我想打印它和父对象名称(如“Name2”)。
我试过了,
var emptyKeys = [];
var FLAG=false;
function emptyObjToNull(object,keysArr){
var isObject, hasKeys, isArray, current;
for(var k in object){
if(!object.hasOwnProperty(k))
return;
current = object[k];
console.log("current KK "+k);
console.log(current);
isObject = typeof current == 'object';
hasKeys = isObject && Object.keys(current).length !== 0;
if(hasKeys){
emptyObjToNull(current, keysArr);
}else if(isObject && !hasKeys){
//object[k] = null; // Set the key directly, not the reference
FLAG=true;
keysArr.push(k);
}
}
}
emptyObjToNull(o,emptyKeys);
console.log(emptyKeys);
【问题讨论】:
-
结构可以嵌套更多吗?
-
你只想找空对象对吧?
-
如果您的初始对象具有固定结构 - 无需使用递归,只需循环
-
不,它不是固定的结构。是的,我想找到空对象及其父键。例如,如果 102 为空,我想打印“Name2”,如果 101 和 102 为空,那么我想分别打印“Name1”和“Name2”...
-
@user3265033:上面评论中的要求与问题的标题不一致。 102 不是空数组,是空对象。
标签: javascript json object