En este objeto, quiero imprimir una matriz en forma de [nombre de usuario, habilidades]. Sé que estos objetos no tienen índices. ¿Es posible detectar la propiedad de skills y solo imprimir el valor de eso?
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 } }Primero probé el código a continuación, pero hubo un error de que no puede leer las propiedades de undefined (lectura 0).
let userId = Object.keys(users); //(3) ['Alex', 'Asab', 'Brook'] for (let i = 0; i < userId.length; i++) { let userSkills = users.userId[i].skills; console.log(userId, userSkills); }¿Es la única forma en que verifico todas las habilidades una por una como se muestra a continuación?
console.log(users.Alex.skills); console.log(users.Asab.skills); console.log(users.Brooks.skills);Ya casi estás ahí -
for (let i = 0; i < userId.length; i++) { let userSkills = users[userId[i]].skills; console.log(userId[i], userSkills); }Utilice la notación de corchetes en lugar de la notación de puntos. Porque todo el tiempo la notación de puntos no es aceptable. Me gusta: .number, .dependingValue, .anyCalculation, numericValue.something
Javascript mezcla decimal.
Lea más: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_accessors
let userId = Object.keys(users); //(3) ['Alex', 'Asab', 'Brook'] userId.forEach(u=> { console.log(users[u].skills); });Como se dijo en los comentarios, debe usar la notación de corchetes.
Enlaces:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_accessors
https://javascript.info/objeto
Además, puede usar esto para acortar su código:
userId.forEach(user => console.log(users[user].skills));Acerca de los métodos de matriz que puede leer aquí: