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

98
Visualizações
Elimine duplicados en una matriz pero agregue una propiedad de conteo para ver la cantidad de duplicados

Básicamente, si tuviera esta matriz:

 [{"id" = 1, "product" = "Book"}, {"id" = 1, "product" = "Book"}, {"id" = 1, "product" = "Book"}, {"id" = 2, "product" = "Chair"}]

Se convertiría en esta matriz:

 [{"id" = 1, "product" = "Book", "count" = 3}, {"id" = 2, "product" = "Chair", "count" = 1}]

Estoy usando reaccionar. Otra opción que tengo es agregar la propiedad de recuento al crear y agregar a la matriz para que no se agreguen duplicados, pero tengo curiosidad por saber si hay una manera de hacerlo con una matriz existente.

Editar: si dos productos tienen la misma identificación, son duplicados.

Intenté filtrar la matriz usando la identificación y luego obteniendo el primer objeto. Filtré la matriz nuevamente por id para obtener la longitud. Luego agregué una nueva propiedad "recuento" al primer objeto que es la longitud de la matriz filtrada, luego agregué el primer objeto a una nueva matriz. El problema de hacerlo de esta manera es que tengo que codificar esto para cada identificación posible, incluso si no está incluido en mi matriz.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Puede reducir la matriz a una nueva matriz con la propiedad de count agregada. Se supone que la propiedad id es suficiente para considerar la unicidad. Si el elemento ya se ha visto, incremente el count ; de lo contrario, agregue un nuevo objeto de elemento aumentado.

 const data = [{ "id": 1, "product": "Book" }, { "id": 1, "product": "Book" }, { "id": 1, "product": "Book" }, { "id": 2, "product": "Chair" }]; const dedupedData = data.reduce((data, el) => { const index = data.findIndex(item => item.id === el.id); if (index !== -1) { data[index].count++; } else { data.push({ ...el, count: 1 }); } return data; }, []); console.log(dedupedData);

about 4 years ago · Juan Pablo Isaza Relatório

0

Reduzca la matriz a un Map (o incluso a un objeto simple) con clave de id (suponiendo que eso es todo lo que se necesita para identificar un duplicado).

Los valores de ese mapa serán la matriz que buscas.

 const arr = [{"id":1,"product":"Book"},{"id":1,"product":"Book"},{"id":1,"product":"Book"},{"id":2,"product":"Chair"}] const zipped = Array.from(arr.reduce((map, o) => { // check if id already registered if (map.has(o.id)) { // increment count map.get(o.id).count++ } else { // otherwise, store the new object with count starting at 1 map.set(o.id, { ...o, count: 1 }) } return map }, new Map()).values()) console.log(zipped)
 .as-console-wrapper { max-height:100% !important; }

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