0

i need an specified object to do a reactive dropdown with jsp, where department active municipality, the way that i do is on javascript with an object json preformatted but i need that come from database

but the object that i got from db is different, can you help me please...only need transform the object A in object B

this:

{
"coddpt":"01",
"namedpt":"AHUACHAPAN ",
"codmun":"01",
"namemun":"AHUACHAPAN "
},
{
"coddpt":"02",
"namedpt":"SANTA ANA ",
"codmun":"01",
"namemun":"SANTA ANA "
},
{
"coddpt":"03",
"namedpt":"SONSONATE ",
"codmun":"01",
"namemun":"SONSONATE "
},
{
"coddpt":"04",
"namedpt":"CHALATENANGO ",
"codmun":"01",
"namemun":"CHALATENANGO "
},
{
"coddpt":"05",
"namedpt":"LA LIBERTAD ",
"codmun":"01",
"namemun":"LA LIBERTAD "
},
{
"coddpt":"06",
"namedpt":"SAN SALVADOR ",
"codmun":"01",
"namemun":"SAN SALVADOR "
},
{
"coddpt":"08",
"namedpt":"LA PAZ ",
"codmun":"01",
"namemun":"LA PAZ "
},
{
"coddpt":"09",
"namedpt":"CABAÑAS ",
"codmun":"01",
"namemun":"CABAÑAS "
},
{
"coddpt":"10",
"namedpt":"SAN VICENTE ",
"codmun":"01",
"namemun":"SAN VICENTE "
},
{
"coddpt":"11",
"namedpt":"USULUTAN ",
"codmun":"01",
"namemun":"USULUTAN "
},
{
"coddpt":"12",
"namedpt":"SAN MIGUEL ",
"codmun":"01",
"namemun":"SAN MIGUEL "
},
{
"coddpt":"13",
"namedpt":"MORAZAN ",
"codmun":"01",
"namemun":"MORAZAN "
},
{
"coddpt":"01",
"namedpt":"AHUACHAPAN ",
"codmun":"02",
"namemun":"CANDELARIA DE LA FRONTERA "
},
{
"coddpt":"02",
"namedpt":"SANTA ANA ",
"codmun":"02",
"namemun":"COATEPEQUE "
},
{
"coddpt":"03",
"namedpt":"SONSONATE ",
"codmun":"02",
"namemun":"CHALCHUAPA "
},
{
"coddpt":"04",
"namedpt":"CHALATENANGO ",
"codmun":"02",
"namemun":"EL CONGO "
},
{
"coddpt":"05",
"namedpt":"LA LIBERTAD ",
"codmun":"02",
"namemun":"EL PORVENIR "
},
{
"coddpt":"06",
"namedpt":"SAN SALVADOR ",
"codmun":"02",
"namemun":"MASAHUAT "
},
{
"coddpt":"07",
"namedpt":"CUSCATLAN ",
"codmun":"02",
"namemun":"METAPAN "
},
{
"coddpt":"08",
"namedpt":"LA PAZ ",
"codmun":"02",
"namemun":"SAN ANTONIO PAJONAL "
},
{
"coddpt":"09",
"namedpt":"CABAÑAS ",
"codmun":"02",
"namemun":"SAN SEBASTIAN SALITRILLO "
},
{
"coddpt":"10",
"namedpt":"SAN VICENTE ",
"codmun":"02",
"namemun":"SANTA ANA "
},
{
"coddpt":"11",
"namedpt":"USULUTAN ",
"codmun":"02",
"namemun":"STAROSA GUACHI "
},
{
"coddpt":"12",
"namedpt":"SAN MIGUEL ",
"codmun":"02",
"namemun":"STGO D LA FRONT "
},
{
"coddpt":"13",
"namedpt":"MORAZAN ",
"codmun":"02",
"namemun":"TEXISTEPEQUE "
},
{
"coddpt":"01",
"namedpt":"AHUACHAPAN ",
"codmun":"03",
"namemun":"ACAJUTLA "
},
{
"coddpt":"02",
"namedpt":"SANTA ANA ",
"codmun":"03",
"namemun":"ARMENIA "
},
{
"coddpt":"03",
"namedpt":"SONSONATE ",
"codmun":"03",
"namemun":"CALUCO "
},
{
"coddpt":"04",
"namedpt":"CHALATENANGO ",
"codmun":"03",
"namemun":"CUISNAHUAT "
},
{
"coddpt":"05",
"namedpt":"LA LIBERTAD ",
"codmun":"06",
"namemun":"COATEPEQUE "
}
]

on this

{
"AHUACHAPAN":["AHUACHAPAN","CANDELARIA DE LA FRONTERA","ACAJUTLA"],
"SANTA ANA": ["SANTA ANA","COATEPEQUE","ARMENIA"],
"SONSONATE": ["SONSONATE","CHALCHUAPA","CALUCO"],
"CHALATENANGO":["CHALATENANGO","EL CONGO","CUISNAHUAT"],
"LA LIBERTAD":["LA LIBERTAD","EL PORVENIR","COATEPEQUE"],
"SAN SALVADOR":["SAN SALVADOR","MASAHUAT"],
"CUSCATLAN":["METAPAN"],
"LA PAZ":["LA PAZ","SAN ANTONIO PAJONAL"],
"CABAÑAS":["CABAÑAS","SAN SEBASTIAN SALITRILLO"],
"SAN VICENTE":["SAN VICENTE","SANTA ANA"],
"USULUTAN":["USULUTAN","STAROSA GUACHI"],
"SAN MIGUEL":["SAN MIGUEL","STGO D LA FRONT"],
"MORAZAN":["MORAZAN","TEXISTEPEQUE"]
}
  • maybe https://stackoverflow.com/questions/40774697/how-can-i-group-an-array-of-objects-by-key helps – cmgchess Apr 02 '23 at 17:02

1 Answers1

1
var B = {};

A.forEach(x => {
    B[x.namedpt] ? B[x.namedpt].push(x.namemun) : B[x.namedpt] = Array(x.namemun);
})
  1. Initialize the object B as an empty object.
  2. Iterate over all Array elements
  3. Firstly namedpt will not in the object B. So, new array will assign to current namedpt.
  4. Next time, current namedpt will have an array. So, this time new element will push to it.
Harry
  • 235
  • 1
  • 8