I have an array like
Const array=[
{
id:1,
name:"abc",
Address:[
{
City: "something",
Country: "first country"
},
{
City: "other city",
Country: "country"
}
]
},
{
...........
}
];
I have to display this nested array objects as flat key value list. So How to reduce this like below.
Reducedarray = [
{ Id: 1, name: "abc" },
{ City: "something", country: "first country"},
{ City: "other city", country: "country"},
{ Id: 2, name: "bbc" },
{ City: "bbcsomething", country: "fbbct country"},
{ City: "other city", country: "country"}
]
Using reducearray i will map with object keys and display as key value list in html.
Need to display as flat list using jsx like below
Id: 1 Name: abc City: first ity Country: firstcountry City: second city Country: second country Id:2 Name: another name ..... ...... ....
Can anyone help me on this plz.. is it possible with reduce only?
CodePudding user response:
const array= [
{
id:1,
name:"abc",
Address:[
{
City: "something",
Country: "first country"
},
{
City: "other city",
Country: "country"
}
]
},
];
const array2 = []
for(let el of array) {
if(el.id) array2.push({id: el.id, name: el.name})
if(el.Address) {
for(let element of el.Address) {
array2.push({ city: element.City, country: element.Country})
}
}
}
console.log(array2)
CodePudding user response:
You could take a flat map with the destructured rest object and Address array.
const
array = [{ id: 1, name: "abc", Address: [{ City: "something", Country: "first country" }, { City: "other city", Country: "country" }] }],
result = array.flatMap(({ Address, ...o }) => [o, ...Address]);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
