Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

248
Views
Combine 2 valores duplicados coincidentes y agregue un recuento, dentro de una matriz de objetos

Tengo una solución anterior que combinaba un conteo, basado en un solo valor coincidente dentro de una matriz de objetos:

P.EJ:

 [ { "ui5": "sap.m.Bar", "count": 2 }, { "ui5": "sap.m.Bar", "count": 1 }, { "ui5": "sap.m.Panel", "count": 1 } ]

Se convertirá:

 [ { "ui5": "sap.m.Bar", "count": 3 }, { "ui5": "sap.m.Panel", "count": 1 } ]

Con el código:

 var r = {}; myArray.forEach(function (o) { r[o.ui5] = (r[o.ui5] || 0) + o.count; }) var outputArray = Object.keys(r).map(function (k) { return { ui5: k, count: r[k] } });

Sin embargo, no estoy seguro de cómo comparar un objeto más detallado, ¡basado en dos valores coincidentes!

P.EJ:

 [ { "ui5": "sap.m.Bar", "_sMutator": "setCustomHeader", "count": 2 }, { "ui5": "sap.m.Bar", "_sMutator": "addContent", "count": 1 }, { "ui5": "sap.m.Bar", "_sMutator": "setCustomFooter", "count": 3 }, { "ui5": "sap.m.Bar", "_sMutator": "setCustomFooter", "count": 1 } ]

Se reducirá a la salida esperada:

 [ { "ui5": "sap.m.Bar", "_sMutator": "setCustomHeader", "count": 2 }, { "ui5": "sap.m.Bar", "_sMutator": "addContent", "count": 1 }, { "ui5": "sap.m.Bar", "_sMutator": "setCustomFooter", "count": 4 } ]

¿No creo que pueda expandir mi lógica original para dar cuenta de dos valores coincidentes? ¡Cualquier ayuda será bien recibida!

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Puede tomar una matriz con claves deseadas para agrupar y usar esta matriz para obtener una clave unida para el grupo y para obtener un objeto si no se asigna ningún objeto a la propiedad del grupo.

 const data = [{ ui5: "sap.m.Bar", _sMutator: "setCustomHeader", count: 2 }, { ui5: "sap.m.Bar", _sMutator: "addContent", count: 1 }, { ui5: "sap.m.Bar", _sMutator: "setCustomFooter", count: 3 }, { ui5: "sap.m.Bar", _sMutator: "setCustomFooter", count: 1 }], keys = ['ui5', '_sMutator'], result = Object.values(data .reduce((r, o) => { const key = keys.map(k => o[k]).join('|'); r[key] ??= { ...Object.fromEntries(keys.map(k => [k, o[k]])), count: 0 }; r[key].count += o.count; return r; }, {}) ); console.log(result);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!