2012-12-31 69 views
0

如何將鍵值對的值用作JavaScript中不同鍵值對中的鍵?將鍵的值用作Javascript中鍵值對的鍵

我想做到以下幾點:

var gizmos = {gizmo1: "G1"}; 
var things = {gizmos.gizmo1: "T1"}; 

所以,事情基本上等於:

var things = {"G1": "T1"}; 
+1

哇,這是一個快速組答案。 – Eugene

回答

7

像這樣:

var gizmos = {gizmo1: "G1"}; 
var things = {}; 
things[gizmos.gizmo1] = "T1"; 

有沒有辦法做到這一點的對象初始化器的一部分(又名對象「literal」),你必須在它之後做。

它的工作原理的原因是,在JavaScript中,您可以訪問(獲取或設置)屬性的對象上有兩種方式:要麼用點號和文字,例如foo.bar,或使用括號標記和字符串,例如, foo["bar"]。在後一種情況下,字符串不一定是字符串文字,它可以是任何表達式的結果(包括在這種情況下,在另一個對象上的屬性查找)。


邊注:如果您改變gizmos.gizmo1你做things[gizmos.gizmo1] = "T1";行後,它確實在things的財產不改變名稱。沒有持久的鏈接,因爲在things[gizmos.gizmo1] = "T1";行中使用的值gizmos.gizmo1來確定屬性名稱(就像它在任何其他表達式中一樣)。

0
var gizmos = {gizmo1: "G1"}; 
var things = {}; 
things[gizmos.gizmo1]="T1"; 
0

要獲取對象上的給定鍵的值使用object["key"]object.key