递归 + 判断,根据自己的逻辑,还可以在判断的地方自己加条件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" ]
递归 + 判断,根据自己的逻辑,还可以在判断的地方自己加条件