let myObj = {
name: 'Mark',
age: 32,
working: 'yes'
}
如何验证myObj是否至少有一条记录? Object.keys(myObj).length给出3这是键的长度(很明显)。我想验证它是否有值而不是空的?
答案 0 :(得分:1)
因此请检查属性值。您可以使用some
函数并检查至少有一个属性的值与null
和undefined
不同。
let myObj = {
name: 'Mark',
age: 32,
working: 'yes'
};
const hasOne = Object.keys(myObj).some(key => myObj[key] !== null && myObj[key] !== undefined);
console.log(hasOne);

答案 1 :(得分:0)
在es6中,您可以结合Object.values
和数组.some
方法执行此操作:
Object.values(myObj).some(Boolean)
仅当myObj
包含至少一个非假的值时才会出现这种情况。虚假值包括:undefined
,null
,0
,NaN
,""
和false
。
答案 2 :(得分:0)
你可以这样做。
let myObj1 = {
name: 'Mark',
age: 32,
working: 'yes'
};
let myObj2 = {};
let myObj3 = {
name: null,
age: null,
working: null
};
function validateObj(obj) {
for (var prop in obj) {
if (obj.hasOwnProperty(prop)) {
if (obj[prop]) return true;
}
}
return false;
}
console.log(validateObj(myObj1)); // true
console.log(validateObj(myObj2)); // false
console.log(validateObj(myObj3)); // false