lodash检查对象属性有值

Cel*_*ang 10 javascript ecmascript-6 lodash

我有几个属性的对象,说它是这样的

{ a: "", b: undefined }
Run Code Online (Sandbox Code Playgroud)

在jsx中是否有任何一行解决方案我可以检查该对象的属性是否为空或是否有价值?如果数组有一个isEmpty方法.

我试过这个

const somethingKeyIsnotEmpty = Object.keys((props.something, key, val) => {
        return val[key] !== '' || val[key] !== undefined
})
Run Code Online (Sandbox Code Playgroud)

Muk*_*oni 35

在lodash中,您可以使用_.some

_.some(props.something, _.isEmpty)
Run Code Online (Sandbox Code Playgroud)

  • 这是javascript._.isEmpty是一个函数,函数是javascript中的第一类(你可以将它作为参数传递并从其他函数返回). (4认同)

小智 9

您可以使用lodash _.every和检查,如果_.values_.isEmpty

const profile = {
  name: 'John',
  age: ''
};

const emptyProfile = _.values(profile).every(_.isEmpty);

console.log(emptyProfile); // returns false
Run Code Online (Sandbox Code Playgroud)


May*_*kla 6

可能的方法:

迭代所有键并检查值:

let obj = {a:0, b:2, c: undefined};

let isEmpty = false;

Object.keys(obj).forEach(key => {
    if(obj[key] == undefined)
        isEmpty = true;
})

console.log('isEmpty: ', isEmpty);
Run Code Online (Sandbox Code Playgroud)

使用Array.prototype.some(),像这样:

let obj = {a:0, b:1, c: undefined};

let isEmpty = Object.values(obj).some(el => el == undefined);

console.log('isEmpty: ', isEmpty);
Run Code Online (Sandbox Code Playgroud)

检查的指标undefinednull

let obj = {a:1, b:2, c: undefined};

let isEmpty = Object.values(obj).indexOf(undefined) >= 0;

console.log('isEmpty: ', isEmpty);
Run Code Online (Sandbox Code Playgroud)