2012-02-02 46 views
1

參考backbone.js中的model.set()函數:有沒有辦法將鍵值作爲變量提供而不是硬編碼?key作爲backbone.js的變量model.set()

在我下面的代碼,設置鍵作爲變量支撐字面上設置鍵「託」,而我需要的關鍵的名稱實際上是存儲在變量支撐值的名稱。

var filters = new Filters(); 

for (var pair in facetsCollection) { 
    for (var prop in facetsCollection[pair]) { 
     filters.set({prop: (facetsCollection[pair])[prop]); 
    } 
} 
+1

可能重複http://stackoverflow.com/questions/6071471/javascript-object-variable-key ) – zzzzBov 2012-02-02 18:00:36

+0

無論你使用的是什麼庫,JavaScript都是JavaScript。使用方括號表示法設置屬性。 – zzzzBov 2012-02-02 18:01:19

+0

我看着你引用的線程,但它們的實現似乎與我試圖實現的略有不同。變量prop有一個字符串值,它需要是密鑰的名稱。該方法遵循以下格式:filters.set({key:value}); – kaspnord 2012-02-02 18:15:20

回答

4

您可以輕鬆地做到這一點是這樣的:

var filters = new Filters(); 

// building of an options hash 
var options = {} 
for (var pair in facetsCollection) { 
    for (var prop in facetsCollection[pair]) { 
     options[prop] = (facetsCollection[pair])[prop]; 
    } 
} 

// setting the options all at once instead of 1 at a time in the for loops 
filters.set(options); 
[JavaScript對象可變密鑰(的
+1

感謝您的明確解釋! – kaspnord 2012-02-02 18:20:48