2012-04-22 45 views
6

我想從多維數組中獲取值。這是我迄今爲止所擁有的。
當我選擇數組中的第一個選項時,我需要99的值和圖像,例如「比利喬爾」。JavaScript:如何從多維數組中獲取值?

var concertArray = [ 
    ["Billy Joel", "99", "equal.png"], 
    ["Bryan Adams", "89", "higher.png"], 
    ["Brian Adams", "25", "lower.png"] 
]; 

function populate(){ 
    for(i = 0; i < concertArray.length; i++){ 
     var select = document.getElementById("test"); 
     select.options[select.options.length] = new Option(concertArray[i][0], concertArray[i][1]); 
    } 
} 

回答

5

99 =>concertArray[i][1] 圖像=>concertArray[i][2]

+0

非常感謝.... 現在,什麼話我必須做的,完成concertImage在這種結構: concertName = concertList.options [concertIndex]的.text; concertPrice = parseFloat(concertList.options [concertIndex] .value); concertImage = ??? – kentrenholm 2012-04-22 20:45:20

0

AFAIK,所述Option構造只需要兩個參數,文本和value。如果你想通過更多的數據,我建議你使用HTML5數據API:

var opt = new Option(concertArray[i][0], concertArray[i][1]); 
opt.setAttribute('data-image', concertArray[i][2]); 
select.options[select.options.length] = opt; 

然後你就可以抓住它使用getAttribute('data-image')

14

你可以嘗試將多維數組轉換爲對象的數組像這樣:

var concertArray = [ 
    {name: "Billy Joel", value: 99, image: "equal.png"}, 
    {name: "Bryan Adams", value: 89, image: "higher.png"}, 
    {name: "Brian Adams", value: 25, image: "lower.png"} 
]; 

然後你就可以訪問該項目數組中像普通對象:

var concertName = concertArray[0].name; 
var concertPrice = parseFloat(concertArray[0].value); 
var concertImage = concertArray[0].image; 
+0

thnks幫助,它真的很好 – kamal 2013-02-01 11:16:30

+0

如何迭代這種類型的數組? – aspiring 2015-05-20 12:12:31

0

您可以使用2 for循環訪問值,如下所示。

var concertArray = [ 
    ["Billy Joel", "99", "equal.png"], 
    ["Bryan Adams", "89", "higher.png"], 
    ["Brian Adams", "25", "lower.png"] 
    ]; 

function populate(){ 
    for(i=0;i<arr.length;i++) 
    { 
     for(j=0;j<arr[i].length;j++) 
     { 
      console.log(arr[i][j]); 
     } 
    } 
} 
+1

這個答案對於大型數組非常不好。 – 2017-04-11 13:56:08