2009-10-27 68 views
0

我有兩個字符串,一個鍵和一個值,我想變成一個對象,並在一個循環串聯。例如:的JavaScript字符串反對

var data = {}; 
// loop starts here 
    var a_key = 'element'; 
    var a_val = 'value'; 
    var a_obj = // somehow this equals { "element":"value" } 
    data = data.concat(a_obj); 
// loop ends here 

我只是不知道如何從這兩個字符串創建一個對象!任何幫助表示讚賞

回答

1

你應該能夠做到:

var a_obj = new Object(); 
a_obj[a_key] = a_val 

,不是嗎? (我不是在一個位置,目前測試這個所以把它用少許鹽......)

1

並沒有真正意義的東西串聯的對象沒有鑰匙。也許data應該是一個對象數組?

data = []; 
a_obj = {}; 
a_obj[a_key] = a_val; 
data += a_obj; 
1
var a_key = 'key'; 
var a_val = 'value'; 
var a_obj = {}; 
a_obj[a_key] = a_val; 

注:

var a_obj = {} 

var a_obj = new Object(); 

是相同的,但{}感覺更清潔,由Douglas Crockford's JSLint建議。

對於追加對象與其它對象,你可以不喜歡......(未測試)

for (var key in a_obj) { 
    if (a_obj.hasOwnProperty(key)) { // avoid inherited properties 
     data[key] = a_obj[key]; 
    } 
} 
0

VAR的A_Key = '元素';

變種a_val = '值';

變種a_obj = {的A_Key:a_val};

+1

這並不是你所期望的。你期望a_obj爲{「元素」:「值」}在本月底,但它實際上是{「的A_Key」:「值」}。 – Jaanus 2009-10-27 21:10:03