首页 > 解决方案 > 如何检查对象是否为空(深)?

问题描述

拿着这个:

var lists:{
  item1:{}
  ,item2:{}
  ,item3:{}
  ,item4:{}
}

由于它基本上是空的,我想要一个函数(也许但不一定是 _lodash 函数)来检查它并说它是空的。

就像是

is_empty(lists) // >> true (because every property resolves to an empty object)

如何?

标签: javascriptlodash

解决方案


您可以遍历对象的值并检查它们是否全部为空:

var lists = {
  item1:{},
  item2:{},
  item3:{},
  item4:{}
}

//ES6:
function isEmpty(obj) {
    return Object.keys(obj).every(k => !Object.keys(obj[k]).length)
}

console.log(isEmpty(lists));

// ES5
function isEmpty(obj) {
    return Object.keys(obj).every(function(k) {
        return !Object.keys(obj[k]).length}
    )
}

console.log(isEmpty(lists));

推荐阅读