如何检查对象中的每个属性是否为null

Kay*_*Kay 2 javascript lodash

我有一个对象有时它是空的,所以{}其他时候它将有内部属性设置为null.

{
  property1: null,
  property2: null
}
Run Code Online (Sandbox Code Playgroud)

如何确定此对象中的所有属性是否为空.如果它们都为null,则返回false.

目前我正在使用lodash检查第一种情况,其中对象只是{}空的.但我还需要介绍第二种情况.

if (isEmpty(this.report.device)) {
  return false;
}
return true;
Run Code Online (Sandbox Code Playgroud)

And*_*nha 7

使用.some()代替的方法.every()

function isEmpty (obj) {
    return !Object.values(obj).some(element => element !== null);
}
Run Code Online (Sandbox Code Playgroud)

如果任何属性不存在,则此函数(命名isEmpty为与问题中给出的名称匹配)应返回,否则返回。falseobjnulltrue


Edd*_*die 6

您可以使用Object.values将对象转换为数组并用于every检查每个元素.使用!否定值.

let report = {
  property1: null,
  property2: null,
}

let result = !Object.values(report).every(o => o === null);

console.log(result);
Run Code Online (Sandbox Code Playgroud)

一些元素的例子不是 null

let report = {
  property1: null,
  property2: 1,
}

let result = !Object.values(report).every(o => o === null);

console.log(result);
Run Code Online (Sandbox Code Playgroud)

Doc:Object.values(),every()