var driversCounter = {
"one": 1,
"two": 2,
"three": 3,
"four": 4,
"five": 5
}
現在,我需要表現出來的下拉列表。如何獲得我的字典中的密鑰集合?
var driversCounter = {
"one": 1,
"two": 2,
"three": 3,
"four": 4,
"five": 5
}
現在,我需要表現出來的下拉列表。如何獲得我的字典中的密鑰集合?
使用Object.keys()
或shim它在較舊的瀏覽器中。
另外,考慮到你的使用情況,也許這將做到這一點...
var selectBox, option, prop;
selectBox = document.getElementById("drivers");
for (prop in driversCounter) {
option = document.createElement("option");
option.textContent = prop;
option.value = driversCounter[prop];
selectBox.add(option);
}
'dict.hasOwnProperty(鍵)' –
擁有現代化的JS引擎,你可以使用Object.keys(driversCounter)
一種選擇是使用Object.keys()
:
Object.keys(driversCounter)
它適用於現代瀏覽器(但是,IE僅支持從版本9開始)。
要添加兼容的支持,您可以複製MDN中提供的代碼段。
最可用答案在這裏! – securecurve
通過「字典」(我們稱之爲在JS對象)循環,使用for in
循環:
for(var key in driversCounter) {
if(driversCounter.hasOwnProperty(key)) {
//key = keys, left of the ":"
//driversCounter[key] = value, right of the ":"
}
}
新的瀏覽器:Object.keys(MY_DICTIONARY)
將返回鍵的數組。否則,你可能想要去的老同學的方式:
var keys = []
for(var key in dic) keys.push(key);
更喜歡約瑟夫所謂的老派方式的回答 –
由於可能的原型設計而不完整。 –
這就是爲什麼當我看到約瑟夫的回答時,我想起了......而不是編輯它,我只是告訴他更喜歡他的回答,對嗎? –
正如其他人所說,你能使用Object.keys()
,但誰在乎老的瀏覽器,對不對?
嗯,我這樣做。
嘗試this。 array_keys
來自PHPJS端口PHP的方便array_keys
函數使它可以在JS中使用。一目瞭然,如果支持,它使用Object.keys
,但處理不太容易的情況。它甚至還包括過濾基於你可能會尋找值(可選)鍵和是否要使用嚴格比較===
與類型轉換比較==
(可選)
這將在所有的JavaScript實現工作撥動:
var keys = [];
for (var key in driversCounter) {
if (driversCounter.hasOwnProperty(key)) {
keys.push(key);
}
}
就像之前提到的其他人一樣,您可能會使用Object.keys
,但它可能無法在舊版引擎中工作。因此可以用下面的猴補丁:
if (!Object.keys) {
Object.keys = function (object) {
var keys = [];
for (var key in object) {
if (object.hasOwnProperty(key)) {
keys.push(key);
}
}
}
}
一種不同的方法將是使用多維陣列:
var driversCounter = [
["one", 1],
["two", 2],
["three", 3],
["four", 4],
["five", 5]
]
和由driverCounter [k]的[j]時,其中j訪問該值在這種情況下= 0,1。
中加入一滴下來列表:
var dd = document.getElementById('your_dropdown_element');
for(i=0;i<driversCounter.length-1;i++)
{
dd.options.add(opt);
opt.text = driversCounter[i][0];
opt.value = driversCounter[i][1];
}
第一個代碼塊無效。 – alex
,如果你可以使用jQuery然後
var keys = [];
$.each(driversCounter, function(key, value) {
keys.push(key);
});
console.log(JSON.stringify(keys));
這裏如下答案:
["one","two","three","four","five"]
而這樣一來,你止跌」不必擔心瀏覽器是否支持Object.keys
方法。
使用Object.Keys()
var driversCounter = {
"one": 1,
"two": 2,
"three": 3,
"four": 4,
"five": 5
}
console.log(Object.keys(driversCounter));
http://stackoverflow.com/questions/8763125/get-array-of-objects-keys –