2015-07-12 59 views
2

以下內容將帶回本字典中的最後一項。如何從Javascript字典中獲得特定的鍵?

$mydict = {"1":"one", "5":"five", "5":"five"}; 
$elements = $mydict["5"]; 
console.log($elements); 

http://jsfiddle.net/7pnb3xj8/

爲什麼它不帶回了最後兩個項目?

是否允許兩個相同的密鑰?

是否有任何理由在涉及字典時使用jQuery變量?據我所知,jQuery不知道任何有關字典。

+0

僅供參考,這有什麼好做的jQuery –

+0

另外,「jQuery的變量」是不是從任何其他不同變量。將一個從jQuery對象派生的變量或方法調用與一個美元符號相加,這是很常見的做法。 – sdgluck

+0

一個對象每個鍵只能包含一個值。您的文字在嚴格模式下無效。 – Bergi

回答

2

字典只允許每個唯一的密鑰一個值,所以你定義一個字典等同於:

var dict = { "1" : "one", "5" : "five" }; 

而且,我不知道你的意思是使用jQuery的變量是什麼,如果你是談論在你的變量名之前加一個'$',這仍然是一個名字中帶有'$'的JS變量。

0

從技術上講,這些是對象,而不是字典。 編輯:正如已經指出的那樣,對象和字典在技術上是等同的,並且只是關鍵值對。我原來的評論只是反映了用JavaScript引用它們的術語是對象,所以與JavaScript字典相比,您可以更輕鬆地搜索JavaScript對象的信息。

我猜你是來自python?對象不能使用同一個鍵具有多個值,以便該對象在JavaScript中無效。

編輯:另外,那些不是jQuery變量。沒有jQuery變量這樣的事情。我認爲你誤解了人們如何使用jQuery。他們實際上使用了這個jQuery選擇器$,並調用它與()傳入一個對象來將該對象轉換爲一個jQuery對象。所以它不是$ myObject,它是$(myObject)

+0

技術上字典,地圖,哈希表,對象,關聯數組都是基於鍵值的存儲。它只是在弱類型語言中命名的差異,如JavaScript – Schien

+0

哦,我完全同意你的看法,這是正確的。我只是將其包含在內,因爲JavaScript中的術語是對象,並且他將更輕鬆地搜索互聯網上的javascript對象信息,而不是他將用於javascript字典的信息。但我會編輯我原來的帖子以反映這一點。 – OceansOnPluto

+0

我明白了。是的,擁有正確的詞彙將有助於搜索。我希望他也能看到所有這些存儲結構的本質,並理解「鍵」或「散列索引」是哈希函數的結果。他們就像有標籤的桶。如果您使用相同的標籤,則先前的值將被替換。 – Schien

1

在Javascript對象中,最後一個鍵值將覆蓋任何具有相同名稱的鍵。 因此,

$mydict = {"1":"one", "5":"five", "5":"six"}; 
$elements = $mydict["5"]; 

將打印六,不是五個

0

第一件事,whatever prefixed with $ is not jQuery thing。在JavaScript字典中不允許重複鍵。如果您嘗試添加重複鍵和值,它將覆蓋現有值。 JS引擎認爲你正在試圖改變它的值,否則它會爲它創建新的引用。

1

看來,在運行時,來自對象的重複內容會被上次條目覆蓋。所以,你的對象$mydict = {"1":"one", "5":"five", "5":"five"};變得

$mydict = {"1":"one", "5":"five"}; 

就嘗試登錄$mydict

小提琴人口統計學http://jsfiddle.net/7pnb3xj8/1/

相關問題