Agrupamento de JSON com Javascript

3 respostas
jsonjavascript
V

Bom dia pessoal, alguém pode me ajudar com esse problema …

Tenho um retorno da api com vários registro no formato JSON, por exemplo:

[{
	data:"01/02/2010", nome:"vivo", janela:"00-02", tipo:"ligado"
}, {
	data:"13/12/2003", nome:"claro", janela:"10-12", tipo:"cancelado"
}, {
	data:"25/01/2017", nome:"tim", janela:"10-12", tipo:"cancelado"
}, {
	data:"22/02/2010", nome:"vivo", janela:"00-02", tipo:"ligado"
}, {
	data:"01/02/2010", nome:"vivo", janela:"08-10", tipo:"cancelado"
}, {
	data:"03/04/2010", nome:"tim", janela:"10-12", tipo:"cancelado"
}, {
	data:"22/02/2010", nome:"claro", janela:"08-10", tipo:"cancelado"
}]

Eu preciso manipular esse json para esse formato, agrupado por data, depois por nome, por janelo, por tipo e por fim fazer uma contagem de quantos tipos tenho, exemplo:

let rows = [{
	data : "01/02/2010", nome:"vivo", intervals: [{
		name: "00-02", types: [{
			name: "ligado", qtd: 2
		}]
	}]
}]

Caso não tenham entendido a pergunta tento explicar novamente.

Obrigado galera

3 Respostas

Lucas_Camara

Sua dúvida é em percorrer o JSON?

V

Isso, preciso percorrer ele e estruturar da forma que está no exemplo. Agrupando por data, nome e depois fazendo a soma da quantidade de registro de cada tipo.

Lucas_Camara

Você pode percorrer com:

for … of

let iterable = [10, 20, 30];

for (let value of iterable) {
  console.log(value);
}
// 10
// 20
// 30

for … in

//Objeto
var obj = {a:1, b:2, c:3};

//Para prop (propriedade) in obj (objeto) faça
for (var prop in obj) {
  console.log("obj." + prop + " = " + obj[prop]);
}

//A saída (output) deverá ser:
// "obj.a = 1"
// "obj.b = 2"
// "obj.c = 3"
Criado 7 de janeiro de 2020
Ultima resposta 7 de jan. de 2020
Respostas 3
Participantes 2