Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

176
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda