检查一个对象是否为空并且属性未定义
我试图检查下面,
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。