Я получаю сервис от сервера и json, который возвращает (см. Ссылку). Мне нужно снять его с охраны, чтобы включить его в соответствии с потребностями, которые у меня есть.
JSON FROM SERVICE
[
{
"id_clasificacion":"1",
"pj_clasificacion":"0",
"pg_clasificacion":"0",
"pe_clasificacion":"0",
"pp_clasificacion":"0",
"dg_clasificacion":"0",
"ta_clasificacion":"0",
"tr_clasificacion":"0",
"jl_clasificacion":"0",
"pts_clasificacion":"0",
"id_equipo":"1",
"nombre_equipo":"Real Madrid CF",
"nombre_grupo":"Grupo A"
},
{
"id_clasificacion":"2",
"pj_clasificacion":"0",
"pg_clasificacion":"0",
"pe_clasificacion":"0",
"pp_clasificacion":"0",
"dg_clasificacion":"0",
"ta_clasificacion":"0",
"tr_clasificacion":"0",
"jl_clasificacion":"0",
"pts_clasificacion":"0",
"id_equipo":"2",
"nombre_equipo":"Barcelona CF",
"nombre_grupo":"Grupo B",
},
{
"id_clasificacion":"3",
"pj_clasificacion":"0",
"pg_clasificacion":"0",
"pe_clasificacion":"0",
"pp_clasificacion":"0",
"dg_clasificacion":"0",
"ta_clasificacion":"0",
"tr_clasificacion":"0",
"jl_clasificacion":"0",
"pts_clasificacion":"0",
"id_equipo":"3",
"nombre_equipo":"Bayern Munchen",
"nombre_grupo":"Grupo B"
},
{
"id_clasificacion":"5",
"pj_clasificacion":"0",
"pg_clasificacion":"0",
"pe_clasificacion":"0",
"pp_clasificacion":"0",
"dg_clasificacion":"0",
"ta_clasificacion":"0",
"tr_clasificacion":"0",
"jl_clasificacion":"0",
"pts_clasificacion":"0",
"id_equipo":"4",
"nombre_equipo":"Atletico de Madrid",
"nombre_grupo":"Grupo C"
},
{
"id_clasificacion":"6",
"pj_clasificacion":"0",
"pg_clasificacion":"0",
"pe_clasificacion":"0",
"pp_clasificacion":"0",
"dg_clasificacion":"0",
"ta_clasificacion":"0",
"tr_clasificacion":"0",
"jl_clasificacion":"0",
"pts_clasificacion":"0",
"id_equipo":"5",
"nombre_equipo":"Chelsea FC",
"nombre_grupo":"Grupo C"
}
];
Все эти данные имеют общую характеристику, которая называется "nombre_grupo"
, при этом я намерен организовать данные во внешнем интерфейсе, как если бы они были упорядочены с заголовком в алфавитном порядке, нов этом случае я буду использовать вышеупомянутое:
|---------------------|------------------|
| GRUPO A | GRUPO B |
|---------------------|------------------|
| Real Madrid | Chelsea |
| Barcelona | Manchester City |
| Atl. Madrid | Manchester Untd |
Это тип соглашения, которое я должен получить с данными, полученными из службы:
[
{
grupo: Grupo A,
equipos :
[
{
id_clasificacion:'information',
nombre_equipo:'information',
pj_clasificacion:'information',
pg_clasificacion:'information',
pe_clasificacion:'information',
pp_clasificacion:'information',
dg_clasificacion:'information',
ta_clasificacion:'information',
tr_clasificacion:'information',
jl_clasificacion:'information',
pts_clasificacion:'information',
}
]
}
];
ПРОБЛЕМА
тогда моя проблема заключается в том, что при попытке перенести данные в новое расположение я не знаю, как перенести их в соответствующий раздел, в этом случае он вставляет их как новый объект, ноон должен принадлежать к соответствующей категории:
0: Object { name_group: "Grupo A", teams_group: (1) […] }
1: Object { name_group: "Grupo B", teams_group: (1) […] }
2: Object { name_group: "Grupo B", teams_group: (1) […] }
3: Object { name_group: "Grupo C", teams_group: (1) […] }
4: Object { name_group: "Grupo C", teams_group: (1) […] }
ЧТО Я СДЕЛАЛ?
//Recorremos los datos obtenidos
for (var i = 0; i < data.length; i++)
{
//Evaluamos si el arreglo no tiene datos
if (this.list_groups.length == 0)
{
//Empujamos el primer valor para llenar el arreglo
this.list_groups.push(
{
name_group: data[i].nombre_grupo,
teams_group: [
{
id_clasificacion:data[i].id_clasificacion,
nombre_equipo:data[i].nombre_equipo,
pj_clasificacion:data[i].pj_clasificacion,
pg_clasificacion:data[i].pg_clasificacion,
pe_clasificacion:data[i].pe_clasificacion,
pp_clasificacion:data[i].pp_clasificacion,
dg_clasificacion:data[i].dg_clasificacion,
ta_clasificacion:data[i].ta_clasificacion,
tr_clasificacion:data[i].tr_clasificacion,
jl_clasificacion:data[i].jl_clasificacion,
pts_clasificacion:data[i].pts_clasificacion
}
]
}
);
}
else
{
//Filtramos el arreglo
let approved = this.list_groups.filter(element => element.name_group == data[i].nombre_grupo);
//Evaluamos si el arreglo obtuvo un valor vacio
if (approved.length == 0)
{
//Empujamos el valor al arreglo final
this.list_groups.push(
{
name_group: data[i].nombre_grupo,
teams_group: [
{
id_clasificacion:data[i].id_clasificacion,
nombre_equipo:data[i].nombre_equipo,
pj_clasificacion:data[i].pj_clasificacion,
pg_clasificacion:data[i].pg_clasificacion,
pe_clasificacion:data[i].pe_clasificacion,
pp_clasificacion:data[i].pp_clasificacion,
dg_clasificacion:data[i].dg_clasificacion,
ta_clasificacion:data[i].ta_clasificacion,
tr_clasificacion:data[i].tr_clasificacion,
jl_clasificacion:data[i].jl_clasificacion,
pts_clasificacion:data[i].pts_clasificacion
}
]
}
);
}
else
{
//Empujamos el valor al arreglo final
this.list_groups.push(
{
name_group: data[i].nombre_grupo,
teams_group: [
{
id_clasificacion:data[i].id_clasificacion,
nombre_equipo:data[i].nombre_equipo,
pj_clasificacion:data[i].pj_clasificacion,
pg_clasificacion:data[i].pg_clasificacion,
pe_clasificacion:data[i].pe_clasificacion,
pp_clasificacion:data[i].pp_clasificacion,
dg_clasificacion:data[i].dg_clasificacion,
ta_clasificacion:data[i].ta_clasificacion,
tr_clasificacion:data[i].tr_clasificacion,
jl_clasificacion:data[i].jl_clasificacion,
pts_clasificacion:data[i].pts_clasificacion
}
]
}
);
}
}
}
console.log("Data: ", this.list_groups);
Логическая последовательность:
1. Go through the arrangement obtained from the service
2. Evaluate if the secondary array has data equal to 0
2.1 if you do not have data, you enter the first value obtained by default
2.2 if it contains data, the secondary array is filtered to identify some match
2.2.1 if it finds a match, then it will be added only to the found group section.
2.2.2 if there is no match, the object is registered in the secondary array
Примечание: если вы думаете,дайте мне знать, есть что улучшить в прикрепленном коде.Спасибо