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

182
Visualizações
Codificación Javascript, combina el mismo objeto

datos = [{a:1, b:2},{a:2, b:2},{a:2, b:2},{a:3, b:2},{a:3, b: 2},{a:3, b:2}], necesitamos convertir la matriz de datos a datos = [{a:1, b:2, contar:1},{a:2, b:2, contar:2 },{a:3, b:2, contar:3}]

Usé este código, pero parece que la clave del mapa es una comparación profunda. así que incluso con el mismo valor de cadena, obtuve claves diferentes

 data = [{a:1, b:2},{a:2, b:2},{a:2, b:2},{a:3, b:2},{a:3, b:2},{a:3, b:2}] data.sort(); let map= new Map() for(let ele of data){ if(map.has(ele)){ map.set(ele,map.get(ele)+1) }else{ map.set(ele,1) } } console.log(map) let arr = [] for(let[key,value]of map){ key.count=value arr.push(key) } console.log(arr)

También hago una iteración de la matriz de datos, pero ocurre el mismo problema.

 let arr=[] let count = 1 data[0].count = count for(let i = 1; i < data.length; i ++){ if(data[i]==data[i-1]){ arr[arr.length-1].count++ } else{ data[i].count = 1 arr.push(data[i]) } }

Entonces, ¿hay una mejor manera de batirse en duelo con él?

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

0

La comparación de objetos requerirá verificar que la cantidad de claves sea la misma y que cada par clave-valor exista en ambos. Requerirá un poco de repetitivo.

 const isSameObj = (obj1, obj2) => ( Object.keys(obj1).length === Object.keys(obj2).length && Object.entries(obj1).every(([key, val]) => obj2.hasOwnProperty(key) && obj2[key] === val) ); const data = [{ a: 1, b: 2 }, { a: 2, b: 2 }, { a: 2, b: 2 }, { a: 3, b: 2 }, { a: 3, b: 2 }, { a: 3, b: 2 }]; const map = new Map(); for (const obj1 of data) { const foundObj = [...map.keys()].find(obj2 => isSameObj(obj1, obj2)); if (foundObj) { map.set(foundObj, map.get(foundObj) + 1); } else { map.set(obj1, 1); } } const output = [...map.entries()] .map(([obj, count]) => ({ ...obj, count })); console.log(output);

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