检查一个对象是否为空并且属性未定义

我试图检查下面,

USECASE: 1 var obj = {}; _.isEmpty(obj); ====> returns true USECASE: 2 var obj = { model: undefined, vendor: undefined, type: undefined } _.isEmpty(obj); ====> returns false 

在用例2中是否还有其他函数可以用来返回true,因为所有的属性都是未定义的。

我提到这个http://www.ericfeminella.com/blog/2012/08/18/determining-if-an-object-is-empty-with-underscore-lo-dash/,但不知道如何实现它,而无需修改本地方法。

你可以使用isUndefined谓词中的每一个并传入:

 var obj = { model: undefined, vendor: undefined, type: undefined } var result = _.every(obj, _.isUndefined); 

或者,您可以省略未定义的值并检查对象是否为空:

 var result = _.isEmpty(_.omit(obj, _.isUndefined)); 

没有下划线:

 const objEmpty = obj => Object.keys(obj).every(key => obj[key] === undefined); 

将接受一个对象,如果对象为空(没有属性)或者如果所有的属性都有undefined值,则返回true。 否则返回false。