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

315
Visualizações
De la matriz de Object , obtenga una matriz de solo valor clave coincidente

Supongamos que tengo una matriz de objetos:

 var students = [{name: 'Nick',achievements: 158,points: 1473}, {name: 'Nick',achievements: '175',points: '16375'}, {name: 'Ramon',achievements: '55',points: '2025'}];

Quiero extraer puntos del nombre Nick solo en una matriz.

Me gusta si (nombre == 'Nick), O/P debería ser [1473,16375]

Lo intenté:

 var arrayPoints = students.map(function (el) { if(el.name=='Nick'){ return el.points } });

Pero me da o/p:

 console.log(arrayPoints) [1473,16375,undefined] o/p
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Una mirada a los métodos:

  • Array#map devuelve un valor (nuevo) para cada elemento.

  • Array#filter devuelve exactamente el elemento si el valor de retorno de la devolución de llamada es veraz


Puede tomar dos pasos, uno para filtrar los elementos y otro para obtener los valores.

 const students = [{ name: 'Nick', achievements: 158, points: 1473 }, { name: 'Nick', achievements: '175', points: '16375' }, { name: 'Ramon', achievements: '55', points: '2025' }], arrayPoints = students .filter(student => student.name === 'Nick') .map(student => student.points); console.log(arrayPoints);

Si se implementa Array#flatMap , puede tomar un solo ciclo y filtrar y devolver un valor.

La matriz vacía no tiene elementos y esta matriz es un valor neutral que no aparece en la matriz de resultados.

 const students = [{ name: 'Nick', achievements: 158, points: 1473 }, { name: 'Nick', achievements: '175', points: '16375' }, { name: 'Ramon', achievements: '55', points: '2025' }], arrayPoints = students .flatMap(student => student.name === 'Nick' ? student.points : [] ); console.log(arrayPoints);

over 4 years ago · Santiago Trujillo Relatório

0

Para un resultado de bucle único sin undefined . Podrías hacerlo con Array#reduce

 students.reduce(function (acc,el) { if(el.name=='Nick'){ acc.push(el.points) } return acc },[]);
over 4 years ago · Santiago Trujillo Relatório

0

Puedes usar reduce para eso:

El método reduce () ejecuta una función de reducción (que usted proporciona) en cada elemento de la matriz, lo que da como resultado un valor de salida único.

Entonces puede usarlo y verificar si el nombre es realmente Nick (el es el valor actual).

si es así, empuje los puntos al acumulador (que es arr).

[] representan el valor inicial pasado a la función de reducción.

 var arrayPoints = students.reduce((arr, el) => (el.name === 'Nick' && arr.push(el.points), arr), [])

Puede encontrar más información sobre reducir aquí:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

over 4 years ago · Santiago Trujillo 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