2013-07-07 169 views
0

說我叫下面的函數:通過使用它的值設置爲一個對象的屬性

var query = makeQuery("email", "[email protected]"); 

我的實現是:

makeQuery = function (key, value) { 
    return { key: value}; 
} 

對象我最終是:{「關鍵」: 「[email protected]」},這顯然是錯誤的。我想獲得{「email」:「[email protected]」}。我試圖像這樣設置它:

makeQuery = function (key, value) { 
    return { JSON.stringify(key): value}; 
} 

...但我得到一個「SyntaxError:意外的標記。」我也想過使用toString()甚至eval(),但沒有成功。所以我的問題是能夠使用它的實際值來設置在makeQuery()中返回的對象的屬性,即,選擇'key'的值,而不是使用'key'文字設置屬性。

感謝您的幫助。

+0

myDOMElement.setAttribute(「attName」,「attValue」);也許也有幫助 –

回答

4

首先創建對象,然後使用方括號語法所以你可以使用key值設定的屬性:

makeQuery = function (key, value) { 
    var query = {}; 
    query[key] = value; 
    return query; 
}; 
+0

這個人得到我的投票,因爲函數讀得更好。其他解決方案也適用。謝謝您的幫助! – titusmagnus

0

對於對象可變密鑰,使用

var obj[key] = value 

那麼它變成:

function makeQuery(key, value) { 
    var obj = {}; 
    obj[key] = value; 
    return obj; 
} 
0

定義一個對象..

makeQuery = function (key, value) { 
var o = {}; 
o[key] = value; 
return o; 
} 
相關問題