Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

296
Vistas
¿Cómo filtrar objetos según la condición dada en JavaScript?

Soy nuevo en esta comunidad y recién comencé a programar. No pude encontrar nada sobre este tema. ¿Alguien puede resolver esto? Necesito filtrar los nombres de cada uno de los puntos en la matriz por encima de 75. He intentado esto y no puedo iterar sobre una matriz.

 const candidatesList = [{'name':'Blake Hodges', 'points':[76,98,88,84]},{'name':'James Anderson', 'points':[0,98,12,13]}] const arrayOfSelecetedCandidates=[] for(let object of candidatesList){ if (candidatesList.every(candidatesList.points>75)){ arrayOfSelecetedCandidates.push(candidatesList.name) } } console.log(arrayOfSelecetedCandidates);

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

¿Quizás quieres esto?

 const candidatesList = [{'name':'Blake Hodges', 'points':[76,98,88,84]},{'name':'James Anderson', 'points':[0,98,12,13]}] const arrayOfSelecetedCandidates=[] for(let object of candidatesList){ if (object.points.every(i=>i>75)) arrayOfSelecetedCandidates.push(object.name) } console.log(arrayOfSelecetedCandidates);

Pero como @Dai señaló, el filtro siempre es mejor si desea probar una matriz y devolver el elemento que pasa la prueba:

 const candidatesList = [{'name':'Blake Hodges', 'points':[76,98,88,84]},{'name':'James Anderson', 'points':[0,98,12,13]}] const arrayOfSelecetedCandidates=candidatesList.filter(i=>i.points.every(y=>y>75)) console.log(arrayOfSelecetedCandidates)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede lograr esto usando el método Array.filter() junto con Array.every() para probar si todos los elementos en la matriz pasan la prueba implementada por la función provista. Devuelve un valor booleano.

Demostración de trabajo:

 const candidatesList = [{ 'name': 'Blake Hodges', 'points': [76, 98, 88, 84] }, { 'name': 'James Anderson', 'points': [0, 98, 12, 13] }]; let res = candidatesList.filter((obj) => { return obj.points.every((item) => item > 75) }); console.log(res);

about 4 years ago · Juan Pablo Isaza Denunciar

0

"Necesito filtrar los nombres de cada uno de los puntos de la matriz por encima de 75"

Mirando el contenido de OP, creo que es incorrecto. Tendría más sentido si el resultado deseado fueran solo los objetos (también conocidos como candidatos) que tienen un promedio de puntos igual o superior a 75, no un total de 75 (aunque no se explica muy bien). Así que el plan de ataque sería:

  • Obtenga cada uno de los candidatos con un bucle for...of :

     for (const candidate of candidates) {...
  • Obtenga cada uno de los puntos del candidato ( candidate.points ) y obtenga sus sumas usando .reduce() (nota: el retorno va a una nueva propiedad llamada .total ). Luego tome ese total y divídalo por el número de calificaciones que se encuentran en la matriz de puntos (es candidate.points.length = 4):

     candidate.total = candidate.points.reduce((sum, cur) => sum + cur, 0); candidate.gpa = Math.floor(candidate.total / candidate.points.length);
  • Una vez que se establece candidate.gpa , .filter() determinará si es igual o mayor que 75.

     return candidates.filter(candidate => candidate.gpa >= 75); 

 const candidates = [{ 'name': 'Blake Hodges', 'points': [76, 98, 88, 84] }, { 'name': 'James Anderson', 'points': [0, 98, 12, 13] }, { 'name': 'Zer0 0ne', 'points': [100, 88, 91, 84] }, { 'name': 'Ronald McDonald', 'points': [72, 51, 8, 89] }]; const selected = candidates => { for (const candidate of candidates) { candidate.total = candidate.points.reduce((sum, cur) => sum + cur, 0); candidate.gpa = Math.floor(candidate.total / candidate.points.length); } return candidates.filter(candidate => candidate.gpa >= 75); }; console.log(selected(candidates));

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda