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

100
Vistas
Cuente las instancias únicas de la propiedad del objeto y cuente en función de otras propiedades

Necesito contar la cantidad de veces que DishName aparece en una matriz de objetos, al mismo tiempo que cuento cuáles están cocidos y cuáles no, con el valor de 1 cocido y 0 sin cocer. Entonces lo siguiente:

 [{ "Cooked": 1, "DishName": "85. Tikka Masala" }, { "Cooked": 0, "DishName": "89. Lamb Rezalla" }, { "Cooked": 1, "DishName": "85. King Prawn Masala" }, { "Cooked": 0, "DishName": "85. Tikka Masala" }]

Debería volver:


DishName -- Cantidad total -- Cocido -- Sin cocer


  1. Tikka Masala -- 2 -- 1 -- 1
  2. Cordero Rezalla -- 1 -- 0 -- 1
  3. Langostino Masala -- 1 -- 1 -- 0
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Este es un caso típico para reducir. Reduzca a un objeto marcado por los nombres de los platos. Para cada uno, registre el conteo total y los conteos de las otras condiciones (cocido/sin cocinar). Transforme ese resultado en una matriz de cadenas asignando enteros de objetos.

 let orders = [{ "Cooked": 1, "DishName": "85. Tikka Masala" }, { "Cooked": 0, "DishName": "89. Lamb Rezalla" }, { "Cooked": 1, "DishName": "85. King Prawn Masala" }, { "Cooked": 0, "DishName": "85. Tikka Masala" }]; let summary = orders.reduce((acc, order) => { if (!acc[order.DishName]) acc[order.DishName] = { count: 0, cooked: 0, uncooked: 0 }; acc[order.DishName].count++; order.Cooked ? acc[order.DishName].cooked++ : acc[order.DishName].uncooked++; return acc; }, {}); // this produces: // { "85. Tikka Masala" : { count: 2, cooked: 1, uncooked: 1 }}, ... // formatted just like the OP... let printReady = Object.entries(summary).map(([name, s]) => `${name} -- ${s.count} -- ${s.cooked} -- ${s.uncooked}`); console.log(printReady);

about 4 years ago · Juan Pablo Isaza Denunciar

0

 const array = [{ "Cooked": 1, "DishName": "85. Tikka Masala" }, { "Cooked": 0, "DishName": "89. Lamb Rezalla" }, { "Cooked": 1, "DishName": "85. King Prawn Masala" }, { "Cooked": 0, "DishName": "85. Tikka Masala" }]; const result = {}; array .map(item => { if (!result[item['DishName']]) { result[item['DishName']] = { quantity: 0, cooked: 0, uncooked: 0 } } result[item['DishName']].quantity++; result[item['DishName']][item['Cooked'] ? 'cooked' : 'uncooked']++; }) .sort((a, b) => a.quantity - b.quantity); for ([key, value] of Object.entries(result)) { console.log(`${key}--${value.quantity}--${value.cooked}--${value.uncooked}`); }

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