Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

171
Views
Pasar un objeto en una función

Estoy haciendo un desafío de freecodecamp y me piden que termine de escribir una función que devuelva verdadero si el objeto pasado contiene los cuatro nombres: 'Alan' 'Jeff' 'Ryan' 'Sarah'. un objeto se define anteriormente, que contiene los datos:

 let users = { Alan: { age: 27, online: true }, Jeff: { age: 32, online: true },

etc. la función comienza así

 function isEveryoneHere(userObj) {}

y tengo esto escrito como mi función completa, en la que puedo devolver los 4 nombres:

 for (const property in userObj) { if (userObj) { return userObj.hasOwnProperty(property) }

Pero todavía me dicen que no cumplo con los criterios del desafío. ¿Algún consejo o consejo?

editar: Mensaje de error No se debe acceder directamente al objeto de los usuarios

Aprobado El objeto de los usuarios solo debe contener las claves Alan, Jeff, Sarah y Ryan

Aprobado La función isEveryoneHere debería devolver verdadero si Alan, Jeff, Sarah y Ryan son propiedades del objeto que se le pasa.

La función isEveryoneHere debería devolver falso si Alan no es una propiedad en el objeto que se le pasa.

La función isEveryoneHere debería devolver false si Jeff no es una propiedad del objeto que se le pasa.

La función isEveryoneHere debería devolver falso si Sarah no es una propiedad en el objeto que se le pasa.

La función isEveryoneHere debería devolver falso si Ryan no es una propiedad en el objeto que se le pasó

editar:

asi lo resolvieron

 function isEveryoneHere(userObj) { if ( userObj.hasOwnProperty("Alan") && userObj.hasOwnProperty("Jeff") && userObj.hasOwnProperty("Sarah") && userObj.hasOwnProperty("Ryan") ) { return true; } return false; }
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Probablemente haría algo como

 let users = { Alan: { age: 27, online: true }, Jeff: { age: 32, online: true }, } function check(userObj) { return ['Alan', 'Jeff', 'Ryan', 'Sarah'].every(user => userObj.hasOwnProperty(user)); } function check2(userObj) { return ['Alan', 'Jeff', 'Ryan', 'Sarah'].every(user => Object.keys(userObj).includes(user)); } console.log('check: ' + check({ Jeff: 1, Alan: 2, Ryan: 3, Sarah: 4 })); console.log('check2: ' + check2({ Jeff: 1, Alan: 2, Ryan: 3, Sarah: 4 })); console.log('Should fail (check): ' + check(users)); console.log('Should fail (check2): ' + check2(users));

ambas variantes deben satisfacer todos los criterios, excepto el de que no se debe acceder directamente al objeto. No estoy seguro de lo que quieren decir con eso, pero el segundo transforma las claves en una matriz, así que tal vez eso es lo que están buscando, aunque es ineficiente.

about 4 years ago · Juan Pablo Isaza Report

0

La especificación describe incluye la función como búsqueda lineal. Entonces, cuando lo use en cualquier ciclo, aumentará su complejidad de tiempo en el peor de los casos a n * 2 . Si necesita verificar la existencia de un nombre, puede usar Establecer aquí, que está optimizado para una verificación de existencia.

Para hacer una solución optimizada, puede usar Establecer aquí

 let users = { Alan: { age: 27, online: true }, Jeff: { age: 32, online: true }, Sarah: { age: 48, online: true }, Ryan: { age: 19, online: true } }; function isEveryoneHere(userObj) { const nameDict = ['Alan', 'Jeff', 'Sarah', 'Ryan']; const keys = new Set(Object.keys(userObj)); return nameDict.every(name => keys.has(name)) } console.log(isEveryoneHere(users));

about 4 years ago · Juan Pablo Isaza Report

0

Corrí esto a través del enlace y pasó

 let users = { Alan: { age: 27, online: true }, Jeff: { age: 32, online: true }, Sarah: { age: 48, online: true }, Ryan: { age: 19, online: true } }; function isEveryoneHere(userObj) { const names = ['Alan', 'Jeff', 'Ryan', 'Sarah']; const keys = Object.keys(userObj); for (let name in names) { if (!(name in keys)) { return false; } } return true; } console.log(isEveryoneHere(users));

Recorre cada nombre en names y verifica si el objeto de los users contiene una clave que es equivalente a ese nombre. Si algún nombre no está en keys , devuelve false . De lo contrario, devuelve true .

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!