递归 + 判断,根据自己的逻辑,还可以在判断的地方自己加条件
function checkEmptyKey(obj) {
let result = [];
return loop(obj, result);
function loop(o, r) {
for (var key in o) {
if (o.hasOwnProperty(key)) {
var t = Object.prototype.toString.call(o[key]);
if (t === "[object Object]") {
loop(o[key], r);
} else if (o[key] === "") { // 这里做数值比较判断
r.push(key);
}
}
}
return r;
}
}
// 测试数据
checkEmptyKey({
a:'',
b:1,
c:{
d:'',
f:1,
g: {
h: "",
j: 0
}
}
}); // ouput: [ "a", "d", "h" ]
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…