“存储”大量数据

时间:2013-09-08 09:54:10

标签: javascript

我是javascript的新手,我不确定存储数据的最佳方式。 我会写一个关于我想要获得的例子:

Country1
     Country informations
     Region1
            Region informations
            Place1
                 Place informations
            Place2
                 Place informations
     Region2
            Region informations
            Place1
                 Place informations
            Place2
                 Place informations
Country2
     Country informations
     Region1
            Region informations
            Place1
                 Place informations
            Place2
                 Place informations
     Region2
            Region informations
            Place1
                 Place informations
            Place2
                 Place informations
...

将“信息”视为不同的值,如x,y,name,ecc ...... 我希望能够以简单的方式访问这些属性,例如1-1-2-x

我想到的最佳解决方案是使用4d数组来存储“地方信息”,使用3d存储“地区信息”以及存储“国家信息”的矩阵

您认为这是最好的解决方案吗?我希望我的解释是可以理解的,谢谢。

3 个答案:

答案 0 :(得分:2)

我认为JSON就是你所追求的目标。

示例:

var data = {
    countries : [
       {
           name: 'country1',
           regions: [
               {
                   name: 'region1',
                   places: [
                       {
                           name: 'place1'
                       }
                   ]
               }
           ]
       }
    ]
};

这里有一系列国家/地区。每个国家都可以拥有一系列地区。每个地区,一系列地方。

您可以通过索引使用它:

var place = data.contries[0].regions[0].places[0].name;

或者您可以编写自定义方法来按名称访问:

var data = {
    getCountry : function(name) {
        var len = this.countries.length;
        for (var i = 0; i < len; i++) {
            if (name === this.countries[i].name)
                return this.countries[i];
        }
        return null;
    },
    countries : [
       {
           getRegion : function(name) {
               var len = this.regions.length;
               for (var i = 0; i < len; i++) {
                   if (name === this.regions[i].name)
                       return this.regions[i];
               }
               return null;
           },
           name: 'country1',
           regions: [
               {
                   name: 'region1',
                   places: [
                       {
                           name: 'place1'
                       }
                   ]
               }
           ]
       }
    ]
};

用法:

var region = data.getCountry('county1').getRegion('region1');

详细数据示例:

var data = {
    countries : [
       {
           name: 'country1',
           regions: [
               {
                   name: 'region1',
                   places: [
                       {
                           name: 'place1'
                       },
                       {
                           name: 'place2'
                       }
                   ]
               },
               {
                   name: 'region2',
                   places: [
                       {
                           name: 'place3'
                       },
                       {
                           name: 'place4'
                       }
                   ]
               }
           ]
       },
       {
           name: 'country2',
           regions: [
               {
                   name: 'region3',
                   places: [
                       {
                           name: 'place5'
                       },
                       {
                           name: 'place6'
                       }
                   ]
               },
               {
                   name: 'region4',
                   places: [
                       {
                           name: 'place7'
                       },
                       {
                           name: 'place8'
                       }
                   ]
               }
           ]
       }
    ]
};

答案 1 :(得分:1)

您可以为数据创建JSON个对象,并将其存储在MongoDB中。这里有一些documentation如何存储和检索数据。

这里有一个article用于进一步理解,因此您可以看到如何创建JSON对象,然后由您决定如何存储它们。

答案 2 :(得分:0)

不建议在没有Ajax请求的情况下在客户端存储此数据量。但是,我现在要做的是:

var data= new Array()

data["US"] = new Array();
data["US"]["Info"] = "United Stats Information...";
data["US"]["Arizona"] = new Array();
data["US"]["Arizona"]["Info"] = "Region Info...";
data["US"]["Arizona"]["placeA"] = "PlaceA Info!";
data["US"]["Arizona"]["placeB"] = "PlaceB Info!";