0

我是 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 数组存储“地区信息”,使用矩阵存储“国家信息”

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

4

3 回答 3

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'
                       }
                   ]
               }
           ]
       }
    ]
};
于 2013-09-08T10:03:33.970 回答
1

您可以为您的数据创建JSON对象并存储在MongoDB中。这里有一些文档如何存储和检索数据。

这里有一篇文章可以进一步理解,因此您可以了解如何创建 JSON 对象,然后由您决定如何存储它们。

于 2013-09-08T10:02:58.513 回答
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!";
于 2013-09-08T10:01:59.123 回答