2012-01-29 43 views
-3

我來自Ruby世界。我如何使用數組的字符串值作爲對象的屬性?例如..使用字符串值作爲對象的屬性來查找屬性的返回值

obj.myarray[0] = 1.00 // obviously this does not work, can you pro make it work? 

obj = { 
val1: 1.00, val2: 2.00} 

myarray = ["val1"] 
+1

你不明白你在問什麼。你能解釋一下你在JavaScript中尋找什麼功能嗎?你的意思是在你將屬性名稱作爲字符串時訪問一個對象的屬性? – 2012-01-29 03:58:42

+0

我不明白你在寫什麼。 – Tom 2012-01-29 03:59:16

+0

@AtesGoral是的,看起來他有一個屬性的名稱存儲爲一個數組中的字符串。然後他想使用數組中的字符串值來訪問該對象的屬性。 – lpd 2012-01-29 04:09:32

回答

4

簡短的回答:我相信你正在尋找的語法是這樣的:

obj[myarray[0]] = 1.00; 

這裏假設你有一個數組,myarray,並且第一個項目在數組中(索引0)具有要與obj對象一起使用的密鑰的名稱。

請注意,= 1.00分配,因此它會將該值存儲在您的對象中。爲了進行比較,您需要== or === operators

龍答:

從你的問題代碼:

obj = { 
    val1: 1.00, val2: 2.00} 

創建一個名爲obj名爲val1val2兩個屬性的對象。這些屬性可以像這樣訪問:

obj["val1"] 
// OR 
obj.val1 

其中點語法只適用於遵循JavaScript標識符名稱規則的屬性名稱。使用括號和字符串語法,您可以將任何字符串用作屬性名稱。

然後

myarray = ["val1"] 

創建具有一個元件,字符串 「VAL1」 的陣列。所以,在我的「簡短的回答」,使用的元素從數組訪問對象的屬性,你說:

obj[ myarray[0] ] 

(其中指數爲0,如果需要,可以另外一個變量。)

您可能想要閱讀以下內容:https://developer.mozilla.org/en/JavaScript/Guide/Working_with_Objects(此外,請注意,在JavaScript中,數組是一種特殊類型的對象,旨在與數字索引一起使用,並不直接與其他語言的「關聯數組」對應 - 「簡單」 JS對象更接近「關聯數組」)。

還要注意,要存儲的值,1.002.00作爲數字將僅返回12 - 如果您需要在小數點後保留尾隨零,則需要將它們存儲爲字符串。

+1

+1爲了搞清楚原始問題的意圖。我刪除了我自己的答案,這是一個幾乎錯過。 – 2012-01-29 04:33:27

+0

來到這裏有不同的問題,但你的答案也幫助我。謝謝。^_ ^ – 2013-08-28 08:16:43

相關問題