怎么判断对象里面存不存在空值?

例如obj对象,怎么判断a、d是空值,如果是三层对象呢?

var obj = {
 a:'',
 b:1,
 c:{
  d:'',
  f:1
 }
};

阅读 1.8k
1 个回答

递归 + 判断,根据自己的逻辑,还可以在判断的地方自己加条件

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" ]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题