将字符串转换为数组中的键值对

chr*_*age 1 javascript jquery

我有一个字符串:

var rrule = "DTSTART=20190514T111500Z;FREQ=DAILY;INTERVAL=1";
Run Code Online (Sandbox Code Playgroud)

我想将此字符串转换为数组中的键->值对。

[
  dtstart: 20190514T111500Z, 
  freq: daily,
  interval: 1
]
Run Code Online (Sandbox Code Playgroud)

我知道我可以获取字符串并根据分号分割它:

var array = rrule.split(";");
Run Code Online (Sandbox Code Playgroud)

...但这给我留下了一个像这样的数组:

[
  "DTSTART=20190514T111500Z",
  "FREQ=DAILY",
  "INTERVAL=1"
]
Run Code Online (Sandbox Code Playgroud)

我想我需要另一个步骤来映射键/值,但此时我迷失了。

理想情况下,对于字符串,我希望能够轻松访问 dtstarts 等于什么、间隔等于什么、其他变量等于什么等等。

buf*_*ffy 6

let str = "DTSTART=20190514T111500Z;FREQ=DAILY;INTERVAL=1";

let obj = {};
for (let entry of str.split(";")) {
  let pair = entry.split("=");
  obj[pair[0]] = pair[1];
}

console.log(obj);
Run Code Online (Sandbox Code Playgroud)

  • 我建议使用[破坏赋值](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment) `let [key, value] = entry.split("= ")` 这使得结果看起来更干净。 (4认同)