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

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

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

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

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