2017-07-07 283 views
0

我有对象有几个属性,说,这是这样的lodash检查对象属性具有值

{ a: "", b: undefined } 
在JSX

没有任何一条线解决方案,我可以检查对象的属性是否不为空或具有价值或不?如果数组有一个isEmpty方法。

我想这

const somethingKeyIsnotEmpty = Object.keys((props.something, key, val) => { 
     return val[key] !== '' || val[key] !== undefined 
}) 
+0

你想检查整个对象是否为空或想检查特定属性? –

+0

@MayankShukla每个对象 –

+0

你想检查所有的属性,如果它们中的任何一个为空或未定义,那么最终输出将为true,否则为false正确? –

回答

10

在lodash,你可以使用_.some

_.some(props.something, _.isEmpty) 
+0

哇可以在回调链lodash? –

+1

这是javascript。 _.isEmpty是一个函数,函数是JavaScript中的第一类(您可以将它作为参数传递并从其他函数返回)。 –

1

可能方式:

迭代所有键和检查值:

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);

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

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

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

 
console.log('isEmpty: ', isEmpty);

检查的undefinednull指数:

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

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

 
console.log('isEmpty: ', isEmpty);

+0

为什么在你的第二块代码中使用一些不是每个?我想检查是否有任何对象没有定义或未定义。 –

+0

@CeldricKang有些人会检查是否有任何的值未定义,那么它会返回true,我们也可以使用每一个,并检查所有的值是否正确。 –