8
I have been trying for a few days to perform JSON data grouping dynamically, but without success, it is a matter of logic rather than programming itself.
Given an array of objects(Users), group them according to their attributes(name, age, etc).
The grouping must be dynamic and the result will be displayed according to the chosen attributes.
JSON:
var lUsuarios = [{
"NOME":"ANTONIO CARLOS CURY",
"IDADE": 28,
"SEXO": "MASCULINO",
"ADMINISTRADOR": true
},{
"NOME":"CESAR SIQUEIRA JUNIOR",
"IDADE": 23,
"SEXO": "MASCULINO",
"ADMINISTRADOR": false
},{
"NOME":"ANDREI SALVADOR",
"IDADE": 18,
"SEXO": "MASCULINO",
"ADMINISTRADOR": true
},{
"NOME":"SERGIO MORO",
"IDADE": 35,
"SEXO": "MASCULINO",
"ADMINISTRADOR": false
},{
"NOME":"MARIA DA SILVA",
"IDADE": 17,
"SEXO": "FEMININO",
"ADMINISTRADOR": true,
},{
"NOME":"JOANA FINA",
"IDADE": 19,
"SEXO": "FEMININO",
"ADMINISTRADOR": false
},{
"NOME":"ELIANE DA SILVA",
"IDADE": 21,
"SEXO": "FEMININO",
"ADMINISTRADOR": true,
},{
"NOME":"MARIA BONITA",
"IDADE": 47,
"SEXO": "FEMININO",
"ADMINISTRADOR": false
}]</code>
Function group:
function AgruparJSON(colunas){
//Throw new Exception("Não sei o que vai aqui");
}
Method call:
The great difficulty is in the compound groupings, where they will be grouped by two or more attributes of the user list (JSON).
$(function(){
//JSON de dados dos usuários
var lUsuarios = JSON.parse('[{...}]');
var lUsuariosSexoAdministrador = lUsuarios.AgruparJSON("SEXO", "ADMINISTRADOR");
console.log(lUsuariosSexoAdministrador);
//Resultado esperado para console.log(lUsuariosSexoAdministrador);
[{"MASCULINO":
[{ "true" : [{
"NOME":"ANTONIO CARLOS CURY",
"IDADE": 28,
"SEXO": "MASCULINO",
"ADMINISTRADOR": true
},{
"NOME":"ANDREI SALVADOR",
"IDADE": 18,
"SEXO": "MASCULINO",
"ADMINISTRADOR": true}]
},{ "false": [{
"NOME":"CESAR SIQUEIRA JUNIOR",
"IDADE": 23,
"SEXO": "MASCULINO",
"ADMINISTRADOR": false
},{
"NOME":"SERGIO MORO",
"IDADE": 35,
"SEXO": "MASCULINO",
"ADMINISTRADOR": false
}]
}]
},{"FEMININO":
[{ "true" : [{
"NOME":"MARIA DA SILVA",
"IDADE": 17,
"SEXO": "FEMININO",
"ADMINISTRADOR": true
},{
"NOME":"ELIANE DA SILVA",
"IDADE": 21,
"SEXO": "FEMININO",
"ADMINISTRADOR": true
}]
},{ "false": [{
"NOME":"MARIA BONITA",
"IDADE": 47,
"SEXO": "FEMININO",
"ADMINISTRADOR": false
},{
"NOME":"JOANA FINA",
"IDADE": 19,
"SEXO": "FEMININO",
"ADMINISTRADOR": false
}]
}]
}];
});
Something like that?
– Costamilam
Hello @Guilhermecostamilam ! Thanks for the answer, I had already read this question that recommended me, the problem are the groupings "children", for when there is more than one grouping, they do not respect the groupings "parents", I need to generate the groupings "children" respecting the grouping "Father", as I tried to show in the Satida of the method: Agruparjson("SEX", "ADMINISTRATOR")
– Antonio Carlos Cury