0

怎样才能得到这个

var myString = 'a,b';

以下以最有效的方式

var myObject = { a:1, b:1};

我需要 1 与每个参数相关联。谢谢你。

4

3 回答 3

5

假设您的字符串确实定义为

var myString = 'a,b';

那么你可以得到你的对象

var obj = {};
var t = myString.split(',');
for (var i=0; i<t.length; i++) obj[t[i]] = 1;

这将使 obj 就像

var obj = { a:1, b:1};

请注意,我没有达到您的目标,因此这可能没用...

旁白:

JSON 是一种用于数据交换的文本格式。没有什么能比得上 JSON 对象。{ a:1, b:1}只是一个具有两个属性的普通 javascript 对象。

如果你想要的是真正的 JSON,你可以这样做

var myJSON = JSON.stringify(obj);

Tis 相当于

var myJSON = '{"a":1,"b":1}';
于 2012-11-07T16:50:08.830 回答
1

var myString = a,b;不做你认为它做的事。

它设置的内容myString 等于ab作为 a的值undefined

做你想做的事,只需写下:

var myJSON = { a:1, b:1};

p00f,它只是工作。


以上适用于OP的忍者编辑之前。

于 2012-11-07T16:49:10.153 回答
1

您可以为此使用.split()和。.reduce()

var result = myString.split(',')
                     .reduce(function(obj, key) {
                         return obj[key] = 1, obj;
                     }, {});

对于较旧的 JavaScript 实现,您需要一个 shim。

于 2012-11-07T16:50:21.543 回答