我有一个JSON
数组对象
data = {
China: ["Guangzhou","Fax"],
Majorette: ["Fungous","Godzilla"],
Bhutan: ["Thimphu","Parr","Photofinishing"]
}
我想访问数组中城市的名称而没有明确提及国家名称,因为列表很长。
var cities = [];
for(var i in data.China) {
cities[i] = data.China[i];
}
我该如何为所有国家做?
答案 0 :(得分:2)
有效地遍历城市对象:
Object.keys(data).forEach(function(key) {
// In here, data[key] is each array of cities.
});
现在,从我对你的问题的理解,你想要将多维对象/数组减少到一个平坦的城市阵列:
var cities = Object.keys(data).reduce(function(arr, key) {
return arr.concat(data[key]);
}, []);
请注意,Object.keys
以及Array.prototype.forEach
和Array.prototype.reduce
是IE9及以上的功能。
答案 1 :(得分:2)
这应该填充cities数组:
var data = {
China: ["Guangzhou","Fax"],
Majorette: ["Fungous","Godzilla"],
Bhutan: ["Thimphu","Parr","Photofinishing"]
}
var cities = [];
for(var i in data){
if(data.hasOwnProperty(i)){
for(var j in data[i] ){
if(data[i].hasOwnProperty(j)){
cities.push(data[i][j]);
}
}
}
}
console.log(cities);
答案 2 :(得分:-1)
for (var key in data) {
var citiesArray = data[key]; // cities for the current country
// your code
}
答案 3 :(得分:-1)
for (var country in data){
for(var i=0;i<data[country].length;i++){
console.log (data[country][i]);
}
}