Agrupar array de objetos por id igual - Javascript
Olá, estou tentando resolver esse problema mas está complicado,
possuo um array de objetos com os campos telefone e idLoja, como uma loja tem mais de um telefone gostaria de unir os vários campos de telefone de acordo com o idLoja
Possuo esse array de objetos
e gostaria que o formato final ficasse assim:
Qual seria a melhor forma de montar essa lógica?
possuo um array de objetos com os campos telefone e idLoja, como uma loja tem mais de um telefone gostaria de unir os vários campos de telefone de acordo com o idLoja
Possuo esse array de objetos
const dados = [ { telefone: '1159482152', idLoja: 1 }, { telefone: '1159289120', idLoja: 1 }, { telefone: '1192092620', idLoja: 1 }, { telefone: '1189526207', idLoja: 1 }, { telefone: '1559482152', idLoja: 2 }, { telefone: '1559289120', idLoja: 2 }, { telefone: '1592092620', idLoja: 2 }, { telefone: '1589526207', idLoja: 2 }, ]
e gostaria que o formato final ficasse assim:
[ { idLoja: 1, telefone: ['1159482152', '1159289120', '1192092620', '1189526207'] }, { idLoja: 2, telefone: ['1559482152', '1559289120', '1592092620', '1589526207'] } ]
Qual seria a melhor forma de montar essa lógica?
Tiago
Curtidas 0
Respostas
Diego Marinho
13/05/2022
Fala amigão, não sei se é a melhor forma de se fazer, mas fiz um esboço aqui , e funcionou. Usei o includes dentro de um loop. Dá uma olhada e vê se melhora esse código.
<script> const dados = [ { telefone: '1159482152', idLoja: 1 }, { telefone: '1159289120', idLoja: 1 }, { telefone: '1192092620', idLoja: 1 }, { telefone: '1189526207', idLoja: 1 }, { telefone: '1559482152', idLoja: 2 }, { telefone: '1559289120', idLoja: 2 }, { telefone: '1592092620', idLoja: 2 }, { telefone: '1589526207', idLoja: 2 }, ] function organizandoObjeto(arr){ let memory={ temp : [], result : [] } arr.map( o=> { if(!memory.temp.includes(o.idLoja)){ memory.temp.push(o.idLoja) const tel = dados.filter( t => t.idLoja === o.idLoja) memory.result.push({ idLoja : o.idLoja, telefone: tel }) } }) return memory.result } // variável que retorna o objeto organizado let NovoArray = organizandoObjeto(dados) </script>
GOSTEI 0