我有一个非常常见的问题,但有一个扭曲,这就是这篇文章的原因:
我想从字符串创建一个键值对象。
我的字符串如下所示:
01§§foo§§bar§§someLink
(我可以将分隔符符号更改为我想要的任何内容,如果应该以某种方式使用特定符号进行非常紧密的解决方案)
现在,我想要一个键值对象,关于这个问题的大多数问题已经在字符串中得到了数据空间,(比如“id:01,title:foo”)但在我的问题中并非如此。
我想生成这样的东西:
var modules = [
{"ID":"01", "title":"foo", "description":"bar","link":"someLink"},
//more entries from more strings
];
键,值对象的原因是,我从数据库转换的这些字符串中有更多。我希望它在一个关键的值对象中,以便以后在我的工具中更容易处理数据。
提前谢谢
答案 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));