检查一个Javascript对象是否为空的新方法 -samantha


网络上稀奇古怪的方法比较多,但是好像不能简洁明了,假设emty对象为空:

const empty = {}

旧方法如下,利用Lodash的“ isEmpty”方法:

_.isEmpty(empty)
//true

新的方法是:

Object keys(empty). Length == 0& empty.constructor == Object
//true

对于较新的浏览器,可以将普通的javascript与“ Object.keys”一起使用。
那么为什么要检查empty.constructor ?它确保传入的数据是实际的对象,例如,如果您传入typeof [],它将记录对象,但是如果您指向构造函数,它将实际上告诉您它是一个数组.

浏览器实际执行如下循环检查:

for (var key in object) {
  if (object.hasOwnProperty(key)) {
    return false
  }
}
return true