三维数组解决方案javascript
我正在从数据库中读取信息,我想要以下结构:大陆->国家->城市。我通过PHP获取数据。我想将这些数据存储在一个三维javascript数组中(或者至少从昨天起我就一直在尝试这样做) 我不知道是否可能发生以下情况:三维数组解决方案javascript,javascript,Javascript,我正在从数据库中读取信息,我想要以下结构:大陆->国家->城市。我通过PHP获取数据。我想将这些数据存储在一个三维javascript数组中(或者至少从昨天起我就一直在尝试这样做) 我不知道是否可能发生以下情况: var triArray[0] = ["Africa"]; var triArray[0][0] = ["Niger"]; var triArray[0][0][0] = ["Abuya"]; 其想法是通过PHP生成这些数组,并使用数据填充它们 我“需要”(我想,我不是专家)一个三维
var triArray[0] = ["Africa"];
var triArray[0][0] = ["Niger"];
var triArray[0][0][0] = ["Abuya"];
其想法是通过PHP生成这些数组,并使用数据填充它们
我“需要”(我想,我不是专家)一个三维空间,然后使用for循环来查看哪个城市属于哪个国家,那个国家位于哪里
<ul
<li>Africa
<ul>
<li>Niger
<ul>
<li>Abuya</li>
</ul>
<li>
</ul>
</li>
</ul>
考虑一种更面向对象的方法-这应该很容易,因为大陆/国家/城市都很重要
function Continent(name) {
this.name = name;
this.countries = [];
}
Continent.prototype.addCountry = function(country) {
if( !(country instanceof Country)) throw new Error("Not a country");
this.countries.push(country);
// may want to add logic for duplicate checking
}
您可以以类似的方式建立职能国家
和职能城市
现在已经完成了,并且您已经构建了您的结构,您可以输出它了。可能是这样的:
Continent.prototype.toString = function() {
var list = "<li>" + this.name,
l = this.countries.length, i;
if( l > 0) {
list += "<ul>";
for( i=0; i<l; i++) {
list += this.countries[i]; // toString implicitly called
}
list += "</ul>";
}
list += "</li>";
return list;
}
考虑一种更面向对象的方法——这应该很容易,因为大陆/国家/城市都很重要
function Continent(name) {
this.name = name;
this.countries = [];
}
Continent.prototype.addCountry = function(country) {
if( !(country instanceof Country)) throw new Error("Not a country");
this.countries.push(country);
// may want to add logic for duplicate checking
}
您可以以类似的方式建立职能国家
和职能城市
现在已经完成了,并且您已经构建了您的结构,您可以输出它了。可能是这样的:
Continent.prototype.toString = function() {
var list = "<li>" + this.name,
l = this.countries.length, i;
if( l > 0) {
list += "<ul>";
for( i=0; i<l; i++) {
list += this.countries[i]; // toString implicitly called
}
list += "</ul>";
}
list += "</li>";
return list;
}
这是不可能的,如果triArray[0]
是字符串,则它不能是字符串数组
你应该选择这样的结构:
{
continents : [
{
name:"Africa",
countries : [
{
name : "Niger",
cities : [
"Abuya" , "", ...
]
},
...
]
},
...
]
}
var continents = data["continents"];
for (var i =0,len = continents.length; i<len;i++){
var continentData = continents[i];
var continentName = continentData["name"];
var listCountries = continentData["countries"];
for (var y =0,leny = listCountries.length; y<leny;y++){
var countryData = listCountries[y];
var countryName = countryData["name"];
// List of cities
var cities = countryData["cities"];
}
}
您可以这样访问它:
{
continents : [
{
name:"Africa",
countries : [
{
name : "Niger",
cities : [
"Abuya" , "", ...
]
},
...
]
},
...
]
}
var continents = data["continents"];
for (var i =0,len = continents.length; i<len;i++){
var continentData = continents[i];
var continentName = continentData["name"];
var listCountries = continentData["countries"];
for (var y =0,leny = listCountries.length; y<leny;y++){
var countryData = listCountries[y];
var countryName = countryData["name"];
// List of cities
var cities = countryData["cities"];
}
}
这是不可能的,如果triArray[0]
是字符串,则它不能是字符串数组
你应该选择这样的结构:
{
continents : [
{
name:"Africa",
countries : [
{
name : "Niger",
cities : [
"Abuya" , "", ...
]
},
...
]
},
...
]
}
var continents = data["continents"];
for (var i =0,len = continents.length; i<len;i++){
var continentData = continents[i];
var continentName = continentData["name"];
var listCountries = continentData["countries"];
for (var y =0,leny = listCountries.length; y<leny;y++){
var countryData = listCountries[y];
var countryName = countryData["name"];
// List of cities
var cities = countryData["cities"];
}
}
您可以这样访问它:
{
continents : [
{
name:"Africa",
countries : [
{
name : "Niger",
cities : [
"Abuya" , "", ...
]
},
...
]
},
...
]
}
var continents = data["continents"];
for (var i =0,len = continents.length; i<len;i++){
var continentData = continents[i];
var continentName = continentData["name"];
var listCountries = continentData["countries"];
for (var y =0,leny = listCountries.length; y<leny;y++){
var countryData = listCountries[y];
var countryName = countryData["name"];
// List of cities
var cities = countryData["cities"];
}
}
您是在问如何在PHP中创建三维数组,还是只是在JavaScript中循环?或者两者都有?您好,我想要的是如何构建包含上述信息的三维数组。或者用二维数组解决我的问题。在我看来,对象比数组更有意义……你是在问如何在PHP中创建三维数组,还是在JavaScript中循环?或者两者都有?您好,我想要的是如何构建包含上述信息的三维数组。或者用二维数组解决我的问题。在我看来,一个对象比数组更有意义……回答得很好,除了我可能会将toString
重命名为toHtml
之外。回答得很好,除了我可能会将toString
重命名为toHtml