Try like this:
const initialModel = [
{
nearByTypeName: "ex 1", id: 1, placeTypes: [
{
placeTypeId: 1, placeTypeName: "ex1.1",
places: []
}
]
},
{
nearByTypeName: "ex 2", id: 2, placeTypes: [
{ id: 2, placeTypeName: "ex 2.1", places: [] },
{ id: 3, placeTypeName: "ex2.1.1", places: [] }
]
}
];
for (const i of initialModel) {
for (const j of i.placeTypes) {
// do stuff
}
}
Edit: You stated you want to use foreach loops but cannot because of the following error:
Error: Cannot invoke an expression whose type lacks a call signature
That error is caused by a mismatch in types. It's caused by the difference in property names. if u rename id in the 2nd element of array to placeTypeId it works
const initialModel = [
{
nearByTypeName: "ex 1", id: 1, placeTypes: [
{ placeTypeId: 1, placeTypeName: "ex1.1", places: [] }
]
},
{
nearByTypeName: "ex 2", id: 2, placeTypes: [
{ placeTypeId: 2, placeTypeName: "ex 2.1", places: [] },
{ placeTypeId: 3, placeTypeName: "ex2.1.1", places: [] }
]
}
];
initialModel.forEach(element => {
const temp = element.placeTypes;
temp.forEach(val => {
// do stuff
})
});
}[];belowplaces: any[];