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

152
Visualizações
necesita obtener el recuento de valores dentro de un objeto JSON -script java
jsondata= [{"unit": "H1", "account": "ambro","domain": "DFRE"}, {"unit": "H1","account": "ambro","domain": "DFRE"}, {"unit": "H2","account": "Honda","domain": "HRO"}, {"unit": "H2","account": "ford","domain": "HRO"} ]

mi salida debe ser

 {unitname : H1,no_of_accounts : 2,accounts_name:[ambro]}, {unitname : H2,no_of_accounts : 2,accounts_name:[ford,Honda]}
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Puede lograr fácilmente el resultado usando Map , Set y reduce

 const jsondata = [{ unit: "H1", account: "ambro", domain: "DFRE", }, { unit: "H1", account: "ambro", domain: "DFRE", }, { unit: "H2", account: "Honda", domain: "HRO", }, { unit: "H2", account: "ford", domain: "HRO", }, ]; const dict = jsondata.reduce((map, curr) => { const objInMap = map.get(curr.unit); if (!objInMap) { map.set(curr.unit, { unitname: curr.unit, no_of_accounts: 1, accounts_name: new Set([curr.account]), }); } else { ++objInMap.no_of_accounts; objInMap.accounts_name.add(curr.account); } return map; }, new Map()); const result = []; for (let obj of dict.values()) { const o = { ...obj, accounts_name: [...obj.accounts_name] }; result.push(o); } console.log(result);
 /* This is not a part of answer. It is just to give the output fill height. So IGNORE IT */ .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Relatório

0

 const data = [ {"unit": "H1", "account": "ambro","domain": "DFRE"}, {"unit": "H1","account": "ambro","domain": "DFRE"}, {"unit": "H2","account": "Honda","domain": "HRO"}, {"unit": "H2","account": "ford","domain": "HRO"} ]; const res = data.reduce((a, {unit, account}) => { a[unit] = a[unit] ? { ...a[unit], no_of_accounts: a[unit].no_of_accounts+1, accounts_name: [...new Set([...a[unit].accounts_name, account])] } : { unitname: unit, no_of_accounts:1, accounts_name: [account] }; return a; }, {}); console.log(Object.values(res));
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Relatório

0

Aquí tengo el método forEach y map para obtener un resultado que puede buscar en Google para estas funciones de Array .

 let data = [ {"unit": "H1", "account": "ambro","domain": "DFRE"}, {"unit": "H1","account": "ambro","domain": "DFRE"}, {"unit": "H2","account": "Honda","domain": "HRO"}, {"unit": "H2","account": "ford","domain": "HRO"} ]; let result = mapData(data); console.log(result); // main function to get your expected result function mapData(data) { let output = []; data.forEach(item => { if(output.find(a => a.unitname == item.unit)) return; let unitname = item.unit; let accounts = data.filter(a => a.unit == item.unit); let no_of_accounts = accounts.length; let accounts_name = accounts.map(a => a.account); accounts_name = Array.from(new Set(accounts_name)); // remove duplicate accounts name output.push({unitname, no_of_accounts, accounts_name}); }); return 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