2012-04-22 54 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

0

私の知る限り、Optionコンストラクタは、2つのだけの引数、テキスト及び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

+0

この種の配列をどのように反復するのですか? – aspiring

0

以下のように2 for 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

この回答は大きな配列ではひどく悪いことです。 –

関連する問題