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

264
Views
¡Contar duplicados en la matriz de objetos y almacenar el conteo como un nuevo objeto tiene un error! reaccionar js

Quiero contar elementos duplicados en mi matriz de objetos, utilizo este código a continuación, pero tengo este error: //Error de tipo: no se pueden leer las propiedades de undefined (leyendo 'tipo')

 //this is my array data[ 1:{cs:'10', name:'a' , age}, 2:{cs:'20', name :'b', age:'25'}, 3:{cs:'10', name :'h', age:'51'}, 4:{cs:'10', name :'g', age:'30'}, ...] //this is my result that i want finalArray[ {cs:'10', count :3}, {cs:'20', count :1 }, ...]

TypeError: no se pueden leer las propiedades de undefined (leyendo 'tipo')

 const prepareSeries = (data, sectors) => { let finalArray = [{}]; const map = new Map(); finalArray.forEach(function (stockItem) { if (map.has(stockItem.cs)) { map.get(stockItem.cs).count++; } else { map.set(stockItem.cs, Object.assign(stockItem, { count: 1 })); } }); finalArray = [...map.values()]; const result = Object.entries(finalArray) .sort((a, b) => b[1] - a[1]) .slice(0, 10); return [ console.log(result), ]; };

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

0

Según tengo entendido, ¿quiere contar las ocurrencias de valores cs únicos en su matriz de data ? Cosa segura.

 const data = [ { cs: "10", name: "a", age: "72" }, { cs: "20", name: "b", age: "25" }, { cs: "10", name: "h", age: "51" }, { cs: "10", name: "g", age: "30" }, ]; const countsByCs = {}; data.forEach(({ cs }) => { countsByCs[cs] = (countsByCs[cs] || 0) + 1; }); const finalArray = Object.entries(countsByCs) .map(([cs, count]) => ({ cs, count })) .sort((a, b) => b.count - a.count); console.log(finalArray);

salidas

 [ { cs: '10', count: 3 }, { cs: '20', count: 1 } ]
about 4 years ago · Juan Pablo Isaza Report

0

Primero, haga los conteos usando Array.prototype.reduce() y luego ordene usando Array.prototype.sort() .

Lo siguiente también funcionaría.

 const data = [ { cs: "10", name: "a", age: "31" }, { cs: "20", name: "b", age: "25" }, { cs: "10", name: "h", age: "51" }, { cs: "10", name: "g", age: "30" }, ]; const output = Object.entries( data.reduce((prev, { cs }) => { prev[cs] = prev[cs] ? prev[cs] + 1 : 1; return prev; }, {}) ) .map(([cs, count]) => ({ cs, count })) .sort((a, b) => b.count - a.count); console.log(output);

Intercambie a y b en b.count - a.count , si desea cambiar el orden de clasificación.

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!