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

270
Visualizações
¡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 Respostas
Responde à pergunta

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 Relatório

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 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