从string生成js键值对象

时间:2016-08-12 08:15:40

标签: javascript key key-value

我有一个非常常见的问题,但有一个扭曲,这就是这篇文章的原因:

我想从字符串创建一个键值对象。

我的字符串如下所示:

  

01§§foo§§bar§§someLink

(我可以将分隔符符号更改为我想要的任何内容,如果应该以某种方式使用特定符号进行非常紧密的解决方案)

现在,我想要一个键值对象,关于这个问题的大多数问题已经在字符串中得到了数据空间,(比如“id:01,title:foo”)但在我的问题中并非如此。

我想生成这样的东西:

var modules = [
{"ID":"01", "title":"foo", "description":"bar","link":"someLink"},
//more entries from more strings
];

键,值对象的原因是,我从数据库转换的这些字符串中有更多。我希望它在一个关键的值对象中,以便以后在我的工具中更容易处理数据。

提前谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用Array#split作为字符串,使用数组作为键。

var string = '01§§foo§§bar§§someLink',
    moduleKeys = ["ID", "title", "description", "link"],
    object = {};

string.split('§§').forEach(function (a, i) {
    object[moduleKeys[i]] = a;
});

console.log(object);

多个字符串的方法。

function getData(array) {
    var moduleKeys = ["ID", "title", "description", "link"];
    return array.map(function (string) {
        var object = {};
        string.split('§§').forEach(function (a, i) {
            object[moduleKeys[i]] = a;
        });
        return object;
    });
}

var strings = ['01§§foo§§bar§§someLink', '02§§foo§§bar§§someLink'];
console.log(getData(strings));