我正在尝试检查以下内容,
USECASE: 1
var obj = {};
_.isEmpty(obj); ====> returns true
USECASE: 2
var obj = { model: undefined, vendor: undefined, type: undefined }
_.isEmpty(obj); ====> returns false
在usecase 2中,我可以利用任何其他函数返回true,因为所有属性都是未定义的。
我引用了这个http://www.ericfeminella.com/blog/2012/08/18/determining-if-an-object-is-empty-with-underscore-lo-dash/但不确定如何在不修改本机方法的情况下实现它。
答案 0 :(得分:1)
没有下划线:
const objEmpty = obj => Object.keys(obj).every(key => obj[key] === undefined);
如果对象为空(无属性)或所有属性都具有undefined
值,则接受对象并返回true。否则返回false。
答案 1 :(得分:0)
您可以使用every并传递isUndefined谓词:
var obj = { model: undefined, vendor: undefined, type: undefined }
var result = _.every(obj, _.isUndefined);
或者你可以omit未定义的值并检查对象是否为空:
var result = _.isEmpty(_.omit(obj, _.isUndefined));