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

134
Vistas
¿Cómo puedo contar los mismos valores en la matriz y crear una matriz diferente?
[{ "project_name": "test", "status": "High" },{ "project_name": "test", "status": "Critical" },{ "project_name": "test", "status": "Critical" }]

Probé mucho con Object.entries, pero no pude alcanzar el resultado que quería.

Rendimiento esperado

 [{ project_name: "test", value: 1, status: "High", }, { project_name: "test", value: 2, status: "Critical", }]

Lo que quiero hacer no es agregar un valor, sino considerar más objetos en la primera matriz con los mismos valores de estado. Quiero contarlos y agruparlos a todos.

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

0

  1. Cree un objeto temporal para contener la información actualizada.
  2. Recorra la matriz y, para cada objeto, cree una clave personalizada a partir de product_name y status .
  3. Si la clave no existe en el objeto temporal, cree un nuevo objeto a partir del actual y agregue una propiedad de valor.
  4. Aumenta el valor en uno.
  5. Finalmente, puede usar Object.values para obtener los nuevos objetos de la matriz temporal.

 const data=[{project_name:"test",status:"High"},{project_name:"test",status:"Critical"},{project_name:"test",status:"Critical"}]; const temp = {}; for (const obj of data) { const { project_name, status } = obj; const key = `${project_name}-${status}`; temp[key] ??= { ...obj, value: 0 }; temp[key].value += 1; } console.log(Object.values(temp));

Documentación adicional

  • Asignación lógica nula

  • Difundir sintaxis

  • Plantilla/literales de cadena


También puedes usar reduce . Se aplican los mismos principios (pero aquí solo está inicializando un objeto vacío para el acumulador y pasándolo a la siguiente iteración de la matriz), aunque el ciclo puede ser más simple de entender si es nuevo en JS.

 const data=[{project_name:"test",status:"High"},{project_name:"test",status:"Critical"},{project_name:"test",status:"Critical"}]; const out = data.reduce((acc, obj) => { const { project_name, status } = obj; const key = `${project_name}-${status}`; acc[key] ??= { ...obj, value: 0 }; acc[key].value += 1; return acc; }, {}); console.log(Object.values(out));

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