2016-08-04 61 views
0

關聯數組有了這個關聯數組,我想找到一個specfic鍵:查找鍵在使用JavaScript

var veggie_prices = new Array(); 
veggie_prices["serves6"] = 20; 
veggie_prices["serves8"] = 25; 
veggie_prices["serves10"] = 35; 

如果通過陣列的I循環,我能找到的值:

var x = veggie_prices[i].value; 

但是如何找到鑰匙?

var y = veggie_prices[i].key; 

回答

3

直接回答你的問題,用一個for..in循環

var veggie_prices = new Array(); 
veggie_prices["serves6"] = 20; 
veggie_prices["serves8"] = 25; 
veggie_prices["serves10"] = 35; 
for (var i in veggie_prices) { 
    console.log(i); // output: serves6, etc.. 
} 

但是,僅僅是明確的,JavaScript沒有關聯數組。除了普通(儘管此時爲空)索引和其他本地數組屬性/方法(例如.length,.pop()等)之外,您擁有的是陣列類型的對象,並且您只是向其添加了多個屬性

+0

so ..爲什麼downvote –

+0

我不明白爲什麼這被拒絕了。 – mrvncaragay

+0

僅添加上下文 - 目前,此列表正在使用單選按鈕控件在列表中進行選擇。要找到帶有for循環的選定單選按鈕,我使用.checked方法和.value來獲取值。使用.key不會產生密鑰。不知道爲什麼。謝謝您的回答。 – windsurf88

2

你爲什麼使用數組?你可以使用一個對象嗎?

var veggie_prices = {}; 
veggie_prices["serves6"] = 20; 
veggie_prices["serves8"] = 25; 
veggie_prices["serves10"] = 35; 

Object.keys(veggie_prices).forEach((key) => { 
    console.log('Key is: ' + key); 
    console.log('Value is: ' + veggie_prices[key]); 
}); 
+0

是的將移動到對象。目前,此列表正在使用單選按鈕控件在列表中進行選擇。要找到所選的單選按鈕,我使用.checked方法和.value來獲取值。使用.key不會產生密鑰。不知道爲什麼。謝謝您的回答。 – windsurf88

+0

很高興幫助!如果有的話,請接受答案。 – sma