2016-11-19 12 views
0

我有過多個值一噸的子值的JavaScript的多維數組。這就是我的意思是:獲取JavaScript多維數組的名字,而不是孩子

var items = { 
    "Area": [ 
     "Feet", 
     "Meters" 
    ], 
    "Frequency": [ 
     "Hertz", 
     "Kilohertz" 
    ] 
}; 

我通過每個第一維項目(如面積和頻率)要循環。我不想循環通過子值,但獲取第一維值的名稱。

這裏是我的代碼,以循環:

$(function() { 
    $.each(items, function(index) { 
     $(".category").append("<option>" + items[index].text + "</option>"); 
    }); 
}); 

只是可以肯定,我想每個第一維度值的名字,比如區和頻率。我試過類似.text,.val,.val()(jQuery),.innerHTML等,但似乎沒有任何工作。

編輯:把之後的項目[指數]沒什麼只是返回子值到每個第一維項目。

+0

你想'Object.keys(項目)' – Tibrogargan

回答

1

當你做items[index],這意味着你要引用到的items價值。 index是關鍵,items[index]是值。試試這個代碼:

var items = { 
 
    "Area": [ 
 
    "Feet", 
 
    "Meters" 
 
    ], 
 
    "Frequency": [ 
 
    "Hertz", 
 
    "Kilohertz" 
 
    ] 
 
}; 
 
$(function() { 
 
    $.each(items, function(index, value) { 
 
    $(".category").append("<option>" + index + "</option>"); 
 
    console.log(index); 
 
    console.log(value); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

謝謝!起初,我認爲這是行不通的,因爲通常「索引」是當前循環的項目數量,但它起作用了!我將從現在開始使用它。 –

+0

'index'是關鍵,而不是一個數量 –

+0

好了,謝謝你。我會記住這一點! –

3

你有什麼,而不是一個多維數組是一個對象(或地圖,HashMap的,無論它被稱爲在其他語言;))

要得到所有你可以使用按鍵Object.keys(myObj);

var items = { 
 
    "Area": [ 
 
     "Feet", 
 
     "Meters" 
 
    ], 
 
    "Frequency": [ 
 
     "Hertz", 
 
     "Kilohertz" 
 
    ] 
 
}; 
 

 
var keys = Object.keys(items); 
 
console.log(keys); 
 

 
// iterate through them 
 
keys.forEach(function(item, index) { 
 
    console.log(index, item); 
 
});

+2

感謝您的快速回復,但Aniket Sahrawat的職位幫助我,是簡單了很多,所以我要去堅持用他。無論如何謝謝你,我希望這可以幫助別人解決他們的問題。 –