簡體   English   中英

如何將對象推入數組?

[英]how to push objects in to an array?

我通過使用Sequelize 2.0.2和mysql在nodeJs中創建了其余的完整Web服務,我通過在Sequelize和Sequelize文字中使用eager-loading概念做到了這一點,所以我想要特定格式的json數據只提供了一部分示例代碼:

 var results=JSON.parse(JSON.stringify(result));
var data=[];
var states;
 var districts;
var cities;
        var locations;
        var sub_locations;
        var properties;
        var builders;
          console.log(JSON.stringify(result));

        for (var country in results) {
            states=results[country].hp_states;
            for(var state in states){
                districts=states[state].hp_districts;
                data.push({state_id: states[state].state_id, state_name: states[state].state_name});
                for(var district in districts) {
                    cities = districts[district].hp_cities;
                    data[state]["district_id"]=districts[district].district_id;
                    data[state]["district_name"]=districts[district].district_name;
                    for(var city in cities) {
                        locations = cities[city].hp_locations;
                        data[district]["city_id"]=cities[city].city_id;
                        data[district]["city_name"]=cities[city].city_name;

                        for(var location in locations) {
                            sub_locations=locations[location].hp_sub_locations;
                            data[city]["location_id"]=locations[location].location_id;
                            data[city]["location_name"]=locations[location].location_name;
                            for(var sublocation in sub_locations){
                                properties=sub_locations[sublocation].hp_property;

                                /*data[location]["sub_location_id"]=sub_locations[sublocation].sub_location_id;
                                data[location]["sub_location_name"]=sub_locations[sublocation].sub_location_name;
                                console.log(JSON.stringify(properties)+"properties...");
*/
                            }
                        }
                    }

                }


            }


        }

我從數據庫中得到以下結果:

在此處輸入圖片說明


我想要這種格式:

在此處輸入圖片說明

我得到的Json格式:

[{"country_id":1,"country_name":"India","hp_states":[{"state_id":1,"state_name":"Tamil Nadu","hp_districts":[{"district_id":3,"district_name":"Erode","hp_cities":[{"city_id":3,"city_name":"Erode","hp_locations":[{"location_id":141,"location_name":"Chellamma Road","hp_sub_locations":[{"sub_location_id":7,"sub_location_name":"Ganga Road","hp_property":{"property_id":3,"property_name":"golden","hp_builder":{"builders_id":21,"builders_name":"golden homes"}}}]}]}]}]},{"state_id":2,"state_name":"Karnataka","hp_districts":[{"district_id":5,"district_name":"Bangalore","hp_cities":[{"city_id":5,"city_name":"Bangalore","hp_locations":[{"location_id":15,"location_name":"Hebbal","hp_sub_locations":[{"sub_location_id":5,"sub_location_name":"Hebbal Police Station","hp_property":{"property_id":1,"property_name":"Godrej Woodsman Estate","hp_builder":{"builders_id":1,"builders_name":"Godrej"}}},{"sub_location_id":6,"sub_location_name":"Hebbal Ring road","hp_property":{"property_id":2,"property_name":"Skyline","hp_builder":{"builders_id":3,"builders_name":"Skyline"}}}]},{"location_id":14,"location_name":"Marathahalli","hp_sub_locations":[{"sub_location_id":4,"sub_location_name":"Kundanalli Gate","hp_property":{"property_id":4,"property_name":"golden","hp_builder":{"builders_id":21,"builders_name":"golden homes"}}}]}]}]}]}]}]

在這里,您將位置更改為“ loc”,因為我在瀏覽器中對其進行了測試,並且在瀏覽器中預定義了位置,如果您使用的是節點,則可以使用位置。

var results=JSON.parse(JSON.stringify(result));
var data=[];
var states;
var districts;
var cities;
var locations;
var sub_locations;
var properties;
var builders;


for (var country in results) {
    states=results[country].hp_states;
    for(var state in states){
        districts=states[state].hp_districts;

        for(var district in districts) {
            cities = districts[district].hp_cities;

            for(var city in cities) {
                locations = cities[city].hp_locations;

                for(var loc in locations) {
                    //location is a browser predefined variable, you can't call your var as location.
                    sub_locations=locations[loc].hp_sub_locations;

                    for(var sublocation in sub_locations){
                        properties=sub_locations[sublocation].hp_property;


                        data.push({
                           state_name: states[state].state_name,
                           district_name:  districts[district].district_name,
                           location_name: locations[loc].location_name,
                           sub_location_id: sub_locations[sublocation].sub_location_id,
                           property_id: properties.property_id,
                           property_name: properties.property_name,
                           builders_id: properties.hp_builder.builders_id,
                           builders_name: properties.hp_builder.builders_name
                        });
                    }
                }
            }
        }
    }
}

console.log(data);//data contains 4 items.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM