texas697
texas697

Reputation: 6417

how to create a object with a array of objects

I have been hacking at this for a while and it is turning into a big hack job that doesn't work. I am recreating a object of a 5 properties and a nested array of objects. right now it does not work. the plunker i made has 2 objects that i am working with. it is only showing one in the result, along with the 5 properties are not showing. on the index page you will see the json that is what i am starting with. i need the end result to include the original array plus the chartBldArry,chartInvArry,chartLoeArry and chartLotsArry arrays in each subdivision object plunker

  var surveyTerritoryArry = [];
   for (var i = 0; i < territory.subdivisions.length; i++) {
                for (var i = 0; i < territory.subdivisions.length; i++) {
                    for (var i = 0; i < territory.subdivisions.length; i++) {
                        for (var i = 0; i < territory.subdivisions.length; i++) {
                            var territory = {


                           subdivisions : {
                                metrics: {
                                    bld: {
                                        count: {
                                            custom: territory.subdivisions[i].metrics.bld.count.custom,
                                            prod: territory.subdivisions[i].metrics.bld.count.prod
                                        },
                                        type: territory.subdivisions[i].metrics.bld.type
                                    },
                                    inv: {
                                        fin: territory.subdivisions[i].metrics.inv.fin,
                                        fut: territory.subdivisions[i].metrics.inv.fut,
                                        mod: territory.subdivisions[i].metrics.inv.mod,
                                        total: territory.subdivisions[i].metrics.inv.total,
                                        uc: territory.subdivisions[i].metrics.inv.uc,
                                        vdl: territory.subdivisions[i].metrics.inv.vdl,
                                    },
                                    loe: {
                                        activity: territory.subdivisions[i].metrics.loe.activity,
                                        bld: territory.subdivisions[i].metrics.loe.bld,
                                        inv: territory.subdivisions[i].metrics.loe.inv,
                                        size: territory.subdivisions[i].metrics.loe.size,
                                        total: territory.subdivisions[i].metrics.loe.total,
                                    },
                                    lots: {
                                        total: territory.subdivisions[i].metrics.lots.total,
                                        total_active: territory.subdivisions[i].metrics.lots.total_active,
                                    },
                                },
                                properties: {
                                    id: territory.subdivisions[i].properties.id,
                                    name: territory.subdivisions[i].properties.name,
                                    show: territory.subdivisions[i].properties.show,
                                    status: territory.subdivisions[i].properties.status,
                                    territoryId: territory.subdivisions[i].properties.territoryId
                                },
                                type: territory.subdivisions[i].type,
                                chartBldArry: MapSidebarChartService.charBldDoughnut(territory.subdivisions[i]),
                                chartInvArry: MapSidebarChartService.charInvtDoughnut(territory.subdivisions[i]),
                                chartLoeArry: MapSidebarChartService.charLoeDoughnut(territory.subdivisions[i]),
                                chartLotsArry: MapSidebarChartService.charLotsDoughnut(territory.subdivisions[i])
                           }
                        };
                            surveyTerritoryArry.push(territory);
                        }
                    }
                }
            }
            for (var i = 0; i < territory.length; i++) {
                var territory = {
                    inv: territory[i].inv,
                    loe: territory[i].loe,
                    lots: territory[i].lots,
                    name: territory[i].name,
                    sbd: territory[i].sbd,
                };
                surveyTerritoryArry.push(territory);
            };
            console.log(surveyTerritoryArry)

Upvotes: 0

Views: 57

Answers (1)

o4ohel
o4ohel

Reputation: 1789

If I understand your question correctly then all you need in your controller is:

for (var i = 0; i < territory.subdivisions.length; i++) {
  territory.subdivisions[i].charInvtDoughnut = MapSidebarChartService.charInvtDoughnut(territory.subdivisions[i]);
  territory.subdivisions[i].charLoeDoughnut = MapSidebarChartService.charLoeDoughnut(territory.subdivisions[i]);
  territory.subdivisions[i].charBldDoughnut = MapSidebarChartService.charBldDoughnut(territory.subdivisions[i]);
  territory.subdivisions[i].charLotsDoughnut = MapSidebarChartService.charLotsDoughnut(territory.subdivisions[i]);
}

Here's a plunker

Upvotes: 2

Related Questions