• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
    • Questions
    • Teachers
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

147
Views
¿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!

almost 3 years ago · Juan Pablo Isaza
3 answers
Answer question

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);

almost 3 years ago · Juan Pablo Isaza Report

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');

almost 3 years ago · Juan Pablo Isaza Report

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');

almost 3 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 Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error