2011-03-23 95 views
49

JQuery是否支持Dictionaries(key,value)集合?JQuery是否支持字典(鍵,值)集合?

我想與添加,查找,刪除和更新的功能設置在結構

[1, false] 
[2, true] 
[3, false] 

以下數據。

任何幫助!

+0

出了什麼問題JavaScript的關聯數組? – kennytm 2011-03-23 07:48:13

+0

儘管Javascript支持字典類型的集合,但爲什麼不將值存儲在數組中,因爲您的鍵是數字? – kevmo314 2011-03-23 07:49:39

+0

您是否需要針對DOM元素或一般情況下存儲數據。爲什麼不能使用簡單的JavaScript對象。如果需要針對特定​​DOM元素存儲數據,則可以查看http:// api。 jquery.com/jQuery.data/ – frictionlesspulley 2011-03-23 07:50:33

回答

101

不,jQuery不會,但Javascript會。

只需使用一個對象:

var dict = { 
    "1" : false, 
    "2" : true, 
    "3" : false 
}; 

// lookup: 
var second = dict["2"]; 
// update: 
dict["2"] = false; 
// add: 
dict["4"] = true; 
// delete: 
delete dict["2"]; 
+0

非常感謝。小問題:我可以初始化它沒有值? – Homam 2011-03-23 08:14:00

+4

@John:是的,只是省略了值:'var dict = {};'。 – 2011-03-23 08:15:12

+0

你應該考慮更新包含'map'的答案 - 這對未來會很有幫助。 (儘管這樣的答案不應該成爲單一的事實點,也就是手冊) – 2016-03-06 21:00:37

2

是的,你可以使用對象要做到這一點:

var myDict = { 1:false , 2:true , 3:false }; 
+0

在'dict'中爲已有的鍵添加新條目的語法是什麼?考慮到我想添加''2「:」false「到'var dict = {」1「:false,」2「:true,」3「:false};' – user1928158 2016-07-08 09:04:49

2

你不需要單獨的字典類,因爲JavaScript對象充當字典。看到這一點:

var userObject = {}; // equivalent to new Object() 
userObject["lastLoginTime"] = new Date(); 
alert(userObject["lastLoginTime"]); 

這裏充分文章:http://msdn.microsoft.com/en-us/magazine/cc163419.aspx

5

jQuery的,沒有。但JavaScript的確如此。 JavaScript中只有兩種結構,arraysobjects

對象可以作爲字典,其中,所述屬性是「鑰匙」:對象

var dict = { 
    1: true, 
    2: true, 
    3: false 
}; 

屬性可以用點表示法被任一訪問,obj.property(如果屬性名稱是有效的標識符,它上面使用的數字不是)或數組訪問表示法,obj['property']

+0

你不覺得自從控制檯。 log(dict.1)'是不可能寫的,這是非常令人困惑的,特別是在如下情況下:'var foo = {3:true,2:true,1:false}; console.log(foo [1]);' – 2011-03-23 08:14:44

+0

@CasparKleijne:不太確定*你認爲什麼是混淆。你的意思是它可能與數組混淆?伊莫應該總是知道正在處理的數據結構。 – 2011-03-23 08:19:20

+0

在'dict'中爲已有的鍵添加新條目的語法是什麼?考慮到我想在'var dict = {「1」:false,「2」:true,「3」:false}中加上''2':'false'';' – user1928158 2016-07-08 09:05:23

3

使用純JavaScript,

var myDictionary = new Object(); 
myDictionary[1] = false; 
myDictionary[2] = true; 
myDictionary[3] = false; 

function look(i) { return myDictionary[i];} 
look(1); // will return false