2011-09-17 43 views
0

A simple jsfiddle不會當我遍歷對象的按鍵我希望什麼。我得到的數字,而不是值當我遍歷我的javascript字典的鍵在一個jQuery應用

但是,當我在index.html中編寫一個類似的片段here時,我得到的是整數而不是密鑰本身。

我爲顯示實際的代碼道歉,但我不明白爲什麼一個簡單的測試會做我想做的和「複雜」的情況下,也不會......除非一些關於jQuery是改變些什麼呢?

+0

此外,有你看着實際JSON?你確定你期望成爲一個類別實際上是某種東西的名稱,而不是數字嗎? – jfriend00

+3

不要道歉給我們實際的代碼。 :)在這裏,我們都是程序員,我們在這裏回答真正的問題,關於實際的書面代碼。在這裏,如果你*不*發佈實際的代碼,第一個評論通常會是「你能不能請發佈代碼?」 – jefflunt

回答

1

這是因爲Object.keys返回一個Array,一個特殊的對象,其關鍵是integers

Object.keys({a:0}) instanceof Array; // true 

因此,它不是for...in對象,而是數組鍵。

+0

是的,你說的是,在..是不是遍歷數組(如它是在Perl/Python)的一個結構。相反,它是獲取我所得鑰匙的鑰匙的一種方式。 –

+0

Tersely說,它採取了一些頭部劃傷和來回你引用你慷慨列出,但我終於明白了:) –

+0

underscore.js是我的新朋友。它做我以爲我在用Javascript做的事情:) –

0

它看起來像你的JSON包含一個數組。如果要創建從一個數組比密鑰的「字典」將是指數,因此他們將是數字。你仍然可以使用這些鍵來訪問對象的元素,如:

obj[key] = value; 

哪裏obj是數組,key是索引。

相關問題