我有几个属性的对象,说它是这样的
{ a: "", b: undefined }
在jsx中是否有任何一行解决方案我可以检查该对象的属性是否为空或是否有价值?如果数组有一个isEmpty方法。
我试过这个
const somethingKeyIsnotEmpty = Object.keys((props.something, key, val) => {
return val[key] !== '' || val[key] !== undefined
})
答案 0 :(得分:28)
在lodash中,您可以使用_.some
_.some(props.something, _.isEmpty)
答案 1 :(得分:4)
可能的方法:
迭代所有键并检查值:
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);

检查undefined
和null
的索引:
let obj = {a:1, b:2, c: undefined};
let isEmpty = Object.values(obj).indexOf(undefined) >= 0;
console.log('isEmpty: ', isEmpty);

答案 2 :(得分:2)
您可以使用lodash _.every
并检查_.values
是否为_.isEmpty
const profile = {
name: 'John',
age: ''
};
const emptyProfile = _.values(profile).every(_.isEmpty);
console.log(emptyProfile); // returns false
答案 3 :(得分:0)
一个简单而优雅的方法来检查一个对象中的所有属性值是否为空,
const ageList = {
age1: 0,
age: null
};
const allAgesEmpty = _.values(ageList).every((age) => !age);
console.log(allAgesEmpty); // returns true
关于_.every里面的函数