如何访问嵌套在另一个对象中的对象中的数组并在其中循环



我对编程很陌生,刚开始学习JS。我有一个练习,我不知道如何解决。任务是统计哪个用户的技能最强。给定代码如下:

const users = {
Alex: {
email: 'alex@alex.com',
skills: ['HTML', 'CSS', 'JavaScript'],
age: 20,
isLoggedIn: false,
points: 30
},
Asab: {
email: 'asab@asab.com',
skills: ['HTML', 'CSS', 'JavaScript', 'Redux', 'MongoDB', 'Express', 'React', 'Node'],
age: 25,
isLoggedIn: false,
points: 50
},
Brook: {
email: 'daniel@daniel.com',
skills: ['HTML', 'CSS', 'JavaScript', 'React', 'Redux'],
age: 30,
isLoggedIn: true,
points: 50
},
Daniel: {
email: 'daniel@alex.com',
skills: ['HTML', 'CSS', 'JavaScript', 'Python'],
age: 20,
isLoggedIn: false,
points: 40
},
John: {
email: 'john@john.com',
skills: ['HTML', 'CSS', 'JavaScript', 'React', 'Redux', 'Node.js'],
age: 20,
isLoggedIn: true,
points: 50
},
Thomas: {
email: 'thomas@thomas.com',
skills: ['HTML', 'CSS', 'JavaScript', 'React'],
age: 20,
isLoggedIn: false,
points: 40
},
Paul: {
email: 'paul@paul.com',
skills: ['HTML', 'CSS', 'JavaScript', 'MongoDB', 'Express', 'React', 'Node'],
age: 20,
isLoggedIn: false,
points: 40
}
}

我想我需要使用一个循环,但是,不确定我如何访问技能数组?

实际上,您可以在users对象的键上使用循环。然后比较skills属性的长度,找出哪个用户的列表最长:

const users = {Alex: {email: 'alex@alex.com',skills: ['HTML', 'CSS', 'JavaScript'],age: 20,isLoggedIn: false,points: 30},Asab: {email: 'asab@asab.com',skills: ['HTML', 'CSS', 'JavaScript', 'Redux', 'MongoDB', 'Express', 'React', 'Node'],age: 25,isLoggedIn: false,points: 50},Brook: {email: 'daniel@daniel.com',skills: ['HTML', 'CSS', 'JavaScript', 'React', 'Redux'],age: 30,isLoggedIn: true,points: 50},Daniel: {email: 'daniel@alex.com',skills: ['HTML', 'CSS', 'JavaScript', 'Python'],age: 20,isLoggedIn: false,points: 40},John: {email: 'john@john.com',skills: ['HTML', 'CSS', 'JavaScript', 'React', 'Redux', 'Node.js'],age: 20,isLoggedIn: true,points: 50},Thomas: {email: 'thomas@thomas.com',skills: ['HTML', 'CSS', 'JavaScript', 'React'],age: 20,isLoggedIn: false,points: 40},Paul: {email: 'paul@paul.com',skills: ['HTML', 'CSS', 'JavaScript', 'MongoDB', 'Express', 'React', 'Node'],age: 20,isLoggedIn: false,points: 40}}
let topUser;
for (let user in users) {
if (!topUser || users[user].skills.length > users[topUser].skills.length) topUser = user;
}
console.log(topUser);

到目前为止你尝试了什么?首先循环遍历用户对象,然后可以检索每个用户的技能。

for (u in users) {
console.log(u.skills);
}

最新更新