2009-10-27 72 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