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)