2012-12-29 90 views
1

我有一個變量,如下所示:如何從Javascript中的數組數組中提取值?

var dataset = { 
"towns": [ 
    ["Aladağ", "Adana", [35.4,37.5], [0]], 
    ["Ceyhan", "Adana", [35.8,37], [0]], 
    ["Feke", "Adana", [35.9,37.8], [0]] 
    ] 
}; 

變量有很多在這城裏的數據。如何從數據中有效提取第三個元素的第一個元素?我,e,...會在什麼地方?

var myArray = ... 
//myArray == [35.4,35.8,35.9] for the given data 

如果我想要在數組中存儲兩個值,該怎麼辦?那就是

var myArray = ... 
//myArray == [[35.4,37.5], [35.8,37], [35.9,37.8]] for the given data 

我對Javascript很陌生。我希望有一種方法不使用for循環。

+3

什麼用for循環是怎麼回事? – Veger

+0

哪裏有與json的連接? – bukart

+0

@Veger沒有錯。我來自MATLAB背景。這就是爲什麼我尋找我認爲非循環解決方案的原因。 – petrichor

回答

5

在較新的瀏覽器上,您可以使用mapforEach,這將避免使用for循環。

var myArray = dataset.towns.map(function(town){ 
    return town[2]; 
}); 
// myArray == [[35.4,37.5], [35.8,37], [35.9,37.8]] 

但是for循環更兼容。

var myArray = []; 
for(var i = 0, len = dataset.towns.length; i < len; i++){ 
    myArray.push(dataset.towns[i][2]; 
} 
2

離不開循環:

var myArray = []; 
for (var i = 0; i < dataset.towns.length; i++) { 
    myArray.push(dataset.towns[i][2][0]); 
} 
// at this stage myArray = [35.4, 35.8, 35.9] 

而且做什麼,如果我想這兩個值存儲在陣列中?

類似,你只需要添加整個數組,不僅第一個元素:

var myArray = []; 
for (var i = 0; i < dataset.towns.length; i++) { 
    myArray.push(dataset.towns[i][2]); 
} 
// at this stage myArray = [[35.4,37.5], [35.8,37], [35.9,37.8]]