【问题标题】:Convert List to Structure Using Javascript or JQuery使用 Javascript 或 JQuery 将列表转换为结构
【发布时间】:2012-01-09 02:42:55
【问题描述】:

如果这是一项微不足道的任务,我深表歉意,而且我也一直在谷歌搜索和搜索,以寻找一些我可以理解但到目前为止没有骰子的解决方案。所以无论如何....

我有这个:

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

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

alert(myList.key1)  // displays value1

想法?也许有一些方法可以用 JQuery 的.each() 做到这一点?无论哪种方式,我都严重迷路了!也许只是因为它真的很晚了,我在长时间的中断之后再次熟悉 JS 和 JQuery 时遇到了麻烦。任何帮助表示赞赏!

【问题讨论】:

  • 看看this question。您只需要创建数组,这很容易通过.split() 完成。

标签: javascript jquery


【解决方案1】:

假设你的值中没有逗号,你可以从使用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 将是空的。

【讨论】:

【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    • 2022-01-13
    相关资源
    最近更新 更多