如果这是一项微不足道的任务,我已经道歉了。我也一直在谷歌搜索并寻找一些解决方案,我可以解决这个问题,但到目前为止还没有骰子。所以无论如何......
我有这个:
var myList = "key1,value1,key2,value2"
我想用这个字符串填充一个结构,所以我可以像这样引用它:
alert(myList.key1) // displays value1
思考?也许有一些方法可以用JQuery的.each()
做到这一点?无论如何我都很丢失!也许只是因为它已经很晚了,经过漫长的中断后我再次熟悉JS和JQuery。任何帮助表示赞赏!
答案 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
})