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