以下內容將帶回本字典中的最後一項。如何從Javascript字典中獲得特定的鍵?
$mydict = {"1":"one", "5":"five", "5":"five"};
$elements = $mydict["5"];
console.log($elements);
爲什麼它不帶回了最後兩個項目?
是否允許兩個相同的密鑰?
是否有任何理由在涉及字典時使用jQuery變量?據我所知,jQuery不知道任何有關字典。
以下內容將帶回本字典中的最後一項。如何從Javascript字典中獲得特定的鍵?
$mydict = {"1":"one", "5":"five", "5":"five"};
$elements = $mydict["5"];
console.log($elements);
爲什麼它不帶回了最後兩個項目?
是否允許兩個相同的密鑰?
是否有任何理由在涉及字典時使用jQuery變量?據我所知,jQuery不知道任何有關字典。
字典只允許每個唯一的密鑰一個值,所以你定義一個字典等同於:
var dict = { "1" : "one", "5" : "five" };
而且,我不知道你的意思是使用jQuery的變量是什麼,如果你是談論在你的變量名之前加一個'$',這仍然是一個名字中帶有'$'的JS變量。
從技術上講,這些是對象,而不是字典。 編輯:正如已經指出的那樣,對象和字典在技術上是等同的,並且只是關鍵值對。我原來的評論只是反映了用JavaScript引用它們的術語是對象,所以與JavaScript字典相比,您可以更輕鬆地搜索JavaScript對象的信息。
我猜你是來自python?對象不能使用同一個鍵具有多個值,以便該對象在JavaScript中無效。
編輯:另外,那些不是jQuery變量。沒有jQuery變量這樣的事情。我認爲你誤解了人們如何使用jQuery。他們實際上使用了這個jQuery選擇器$
,並調用它與()
傳入一個對象來將該對象轉換爲一個jQuery對象。所以它不是$ myObject,它是$(myObject)
。
技術上字典,地圖,哈希表,對象,關聯數組都是基於鍵值的存儲。它只是在弱類型語言中命名的差異,如JavaScript – Schien
哦,我完全同意你的看法,這是正確的。我只是將其包含在內,因爲JavaScript中的術語是對象,並且他將更輕鬆地搜索互聯網上的javascript對象信息,而不是他將用於javascript字典的信息。但我會編輯我原來的帖子以反映這一點。 – OceansOnPluto
我明白了。是的,擁有正確的詞彙將有助於搜索。我希望他也能看到所有這些存儲結構的本質,並理解「鍵」或「散列索引」是哈希函數的結果。他們就像有標籤的桶。如果您使用相同的標籤,則先前的值將被替換。 – Schien
在Javascript對象中,最後一個鍵值將覆蓋任何具有相同名稱的鍵。 因此,
$mydict = {"1":"one", "5":"five", "5":"six"};
$elements = $mydict["5"];
將打印六,不是五個
第一件事,whatever prefixed with $ is not jQuery thing
。在JavaScript字典中不允許重複鍵。如果您嘗試添加重複鍵和值,它將覆蓋現有值。 JS引擎認爲你正在試圖改變它的值,否則它會爲它創建新的引用。
看來,在運行時,來自對象的重複內容會被上次條目覆蓋。所以,你的對象$mydict = {"1":"one", "5":"five", "5":"five"};
變得
$mydict = {"1":"one", "5":"five"};
就嘗試登錄$mydict
小提琴人口統計學http://jsfiddle.net/7pnb3xj8/1/
僅供參考,這有什麼好做的jQuery –
另外,「jQuery的變量」是不是從任何其他不同變量。將一個從jQuery對象派生的變量或方法調用與一個美元符號相加,這是很常見的做法。 – sdgluck
一個對象每個鍵只能包含一個值。您的文字在嚴格模式下無效。 – Bergi