使用Javascript或JQuery将列表转换为结构

时间:2012-01-08 09:08:49

标签: javascript jquery

如果这是一项微不足道的任务,我已经道歉了。我也一直在谷歌搜索并寻找一些解决方案,我可以解决这个问题,但到目前为止还没有骰子。所以无论如何......

我有这个:

var myList = "key1,value1,key2,value2"

我想用这个字符串填充一个结构,所以我可以像这样引用它:

alert(myList.key1)  // displays value1

思考?也许有一些方法可以用JQuery的.each()做到这一点?无论如何我都很丢失!也许只是因为它已经很晚了,经过漫长的中断后我再次熟悉JS和JQuery。任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:5)

假设您的值中没有逗号,可以先使用split

var parts = myList.split(",");// ["key1", "value1", ...]

从那里你可以使用一个简单的循环:

var obj = {};
for (var i = 0; i < parts.length; i+=2) obj[parts[i]] = parts[i + 1];

正如this回答指出的那样,你也可以像这样编写循环:

var obj = {};
while (parts.length) obj[parts.shift()] = parts.shift();

这是写一个简洁的方法,但表现不同:在这个循环之后,parts将为空。

答案 1 :(得分:2)

String.replace方法是字符串解析任务的首选

var myList = "key1,value1,key2,value2"
var result = {}

myList.replace(/(\w+),(\w+)/g, function($0, $1, $2) {
    result[$1] = $2
})