我想从多维数组中创建一个数组,如下所示:
var dataItaly = [
/*Town Region City*/
["Castelspina","Piemonte","Alessandria" ],
["Cavatore","Piemonte","Alessandria" ],
["Cella Monte","Piemonte","Alessandria" ],
["Cereseto","Piemonte","Alessandria" ],
["Cantarana","Piemonte","Asti" ],
["Capriglio","Piemonte","Asti" ],
["Casorzo","Piemonte","Asti" ],
["Albino","Lombardia","Bergamo" ],
["Algua","Lombardia","Bergamo" ],
["Abbiategrasso","Lombardia","Milano" ],
["Agrate Brianza","Lombardia","Milano" ],
["Aicurzio","Lombardia","Milano" ],
["Almese","Piemonte","Torino" ],
["Alpette","Piemonte","Torino" ],
["Alpignano","Piemonte","Torino" ],
["Andezeno","Piemonte","Torino" ],
["Albonese","Lombardia","Pavia" ],
["Albuzzano","Lombardia","Pavia" ],
["Arena Po","Lombardia","Pavia" ],
["Badia Pavese","Lombardia","Pavia" ]
];
这是我的出发点......
var region = "Piemonte"
// array must appear the city of "Piemonte"
function createArrayCity (dataItaly, region) {
var arrayList;
for (i = 0; i <dataItaly.length i) {
if the region === [1] {
arrayList [2]. append;
return arrayList;
}
}
}
这个内容必须是arrayList [Alessandria,Torino,Asti]。 如果var region =“Lombardia”,则arrayList的内容为[Bergamo,Milano,Pavia]
答案 0 :(得分:1)
您可以使用concat合并数组:
var dataItaly = [
["Castelspina","Piemonte","Alessandria" ],
["Cavatore","Piemonte","Alessandria" ],
["Cella Monte","Piemonte","Alessandria" ],
["Arena Po","Lombardia","Pavia" ],
["Badia Pavese","Lombardia","Pavia" ]
];
var merged = [];
merged = merged.concat.apply(merged, dataItaly);
要删除重复项(如果需要),您可以执行以下操作:
merged = merged.filter (function (v, i, a) { return a.indexOf (v) == i });
答案 1 :(得分:1)
var result = dataItaly.map(function(e) {
return e[1] === region ? e[2] : null;
}).filter(function(e, i, a) {
return e !== null && a.indexOf(e) === i;
});
答案 2 :(得分:0)
尝试
function createArrayCity (dataItaly, region) {
var arrayList = [];
for (i = 0; i <dataItaly.length; i++) {
if (dataItaly[i][1] === region && indexOf(arrayList, dataItaly[i][2]) == -1) {
arrayList.push(dataItaly[i][2])
}
}
return arrayList;
}
function indexOf(array, obj){
if(typeof array.indexOf == 'function'){
return array.indexOf(obj);
}
for (i = 0; i <array.length; i++) {
if(array[i] == obj){
return i;
}
}
return -1;
}
console.log(createArrayCity(dataItaly, 'Lombardia'))
演示:Fiddle