Javascript 如何检查对象的键以更复杂的方式存在

Javascript 如何检查对象的键以更复杂的方式存在,javascript,object,Javascript,Object,我有一个对象来检查每个键是否存在 { _id: 5e907e4047dd2f290ea4d23b, username: 'gg', email: 'gg', isSensei: false, location: 3, location2: 0, age: 7, country: 'AI', introduce: 'Nice to meet you' } if (obj.hasOwnProperty(username) && obj.hasOwn

我有一个对象来检查每个键是否存在

 { _id: 5e907e4047dd2f290ea4d23b,
  username: 'gg',
  email: 'gg',
  isSensei: false,
  location: 3,
  location2: 0,
  age: 7,
  country: 'AI',
  introduce: 'Nice to meet you' }

if (obj.hasOwnProperty(username) && obj.hasOwnProperty(email) && ... ) {
   // do something
}
如果零件看起来又长又丑。 是否可以在一行代码中检查每个字段是否存在?

首先,您可以使用对象中的所有键获取。然后,通过和组合,您可以确定是否所有关键点都反映在您的对象中您正在查找的内容,例如从
字段检查我为更好地表示而创建的数组

请尝试以下操作:

const obj={{u id:'5e907e4047dd2f290ea4d23b',用户名:'gg',电子邮件:'gg',isSensei:false,地点:3,地点2:0,年龄:7,国家:'AI',介绍:'很高兴认识你';
const fieldsToCheck=['email','username','location'];
常量键=对象键(obj);
const hasAll=fieldsToCheck.every(e=>keys.includes(e));

console.log(hasAll)
您可以使用
Object.keys()
Array.prototype.every()
来完成

const数据={
_id:'5e907e4047dd2f290ea4d23b',
用户名:“gg”,
电子邮件:“gg”,
伊森西:错,
地点:3,,
地点2:0,,
年龄:7岁,
国家:"哎",,
介绍:“很高兴认识你”
};
常量键=对象键(数据);
常量isExistsEveryKeys=keys.every(key=>data[key]!==未定义);//这将检查每个键是否存在,如果所有键都存在,则返回true,否则返回false。

console.log(isExistsEveryKeys)
obj.username.hasOwnProperty(username)obj.key如果不存在将返回undefined,因此您可以在如下条件下使用它:if(obj.key)或if(!!obj.key)