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

201
Visualizações
¿Cómo puedo filtrar una matriz de objetos en función de una propiedad específica y devolver solo una propiedad cuando inserto el parámetro en la función?

No puedo hacer esto. Me gustaría que el parámetro insertado en la función me devuelva ese valor específico del objeto.

Si inserto "over" me gustaría una matriz con los nombres cuya edad es mayor de 50 años, mientras que, por el contrario, si inserto under, ¡no funciona!

 const person = [ { name: 'Jessica', age: 25 }, { name: 'Ilary', age: 27 }, { name: 'Frank', age: 70 }, { name: 'Dan', age: 65 }, { name: 'Pop', age: 22 }, { name: 'Maur', age: 68 }, ]; let nameOver50 = []; let nameUnder50 = []; function check(enter) { person.filter(({ name, age }) => { if (age > 50 && enter === 'over') { nameOver50.push({ name }); } else if (age < 50 && enter === 'under') { nameUnder50.push(name); } }); console.log(nameUnder50); } check('over');

¡gracias de antemano!

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Por lo que entiendo, si desea que se devuelva como una matriz de names , debe devolver solo el name , que es como una cadena, en lugar de devolver el objeto de name .

 const person = [ { name: 'Jessica', age: 25 }, { name: 'Ilary', age: 27 }, { name: 'Frank', age: 70 }, { name: 'Dan', age: 65 }, { name: 'Pop', age: 22 }, { name: 'Maur', age: 68 }, ]; let nameOver50 = []; let nameUnder50 = []; function check(enter) { enter === 'over' ? (nameOver50 = person .filter(({ name, age }) => age > 50) .map(({ name }) => name)) : (nameUnder50 = person .filter(({ name, age }) => age < 50) .map(({ name }) => name)); } check('over'); check('under'); console.log(nameOver50); console.log(nameUnder50);

about 4 years ago · Juan Pablo Isaza Relatório

0

Parece que solo está registrando nameUnder50 pero está pasando 'over' a la función

nameOver50 es la matriz que debe registrar o ambas:

 const person = [ { name: 'Jessica', age: 25 }, { name: 'Ilary', age: 27 }, { name: 'Frank', age: 70 }, { name: 'Dan', age: 65 }, { name: 'Pop', age: 22 }, { name: 'Maur', age: 68 }, ]; let nameOver50 = []; let nameUnder50 = []; function check(enter) { person.filter(({ name, age }) => { if (age > 50 && enter === 'over') { nameOver50.push( name ); // nameOver50.push({ name }); // You could alternatively just push the name, if you want an array of the names only } else if (age < 50 && enter === 'under') { nameUnder50.push(name); } }); console.log(nameUnder50); console.log(nameOver50); } check('over'); check('under');

about 4 years ago · Juan Pablo Isaza Relatório

0

No está utilizando el resultado de filter() , por lo que debería ser forEach() .

Debe mostrar la matriz apropiada dependiendo de enter .

 const person = [ { name: 'Jessica', age: 25 }, { name: 'Ilary', age: 27 }, { name: 'Frank', age: 70 }, { name: 'Dan', age: 65 }, { name: 'Pop', age: 22 }, { name: 'Maur', age: 68 }, ]; let nameOver50 = []; let nameUnder50 = []; function check(enter) { person.forEach(({ name, age }) => { if (age > 50 && enter === 'over') { nameOver50.push({ name }); } else if (age < 50 && enter === 'under') { nameUnder50.push(name); } }); if (enter === 'over') { console.log(nameOver50); } else { console.log(nameUnder50); } } check('over');

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