为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

萧十郎 2021-06-09 18:49:21
我有一个字符串:var rrule = "DTSTART=20190514T111500Z;FREQ=DAILY;INTERVAL=1";我想将此字符串转换为数组中的键-> 值对。[  dtstart: 20190514T111500Z,   freq: daily,  interval: 1]我知道我可以使用字符串并根据分号拆分它:var array = rrule.split(";");...但这给我留下了一个这样的数组:[  "DTSTART=20190514T111500Z",  "FREQ=DAILY",  "INTERVAL=1"]我想我需要另一个步骤来映射键/值,但此时我迷路了。理想情况下,对于字符串,我希望能够轻松访问 dtstarts 等于什么、什么间隔等于、什么其他变量等于等等。
查看完整描述

2 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

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);


查看完整回答
反对 回复 2021-06-18
?
Helenr

TA贡献1780条经验 获得超3个赞

您首先从 split 开始是正确的,然后这将返回一个字符串数组。


要轻松转换它们,只需使用map, 再次返回拆分的单个字符串,然后根据您想给它的属性名称及其值返回一个对象


function createKeyValuePairFromString( str ) {

  return str.split(';').map( item => {

    const splitted = item.split('=');

    return { [splitted[0]]: splitted[1] };

  });

}


console.log( createKeyValuePairFromString("DTSTART=20190514T111500Z;FREQ=DAILY;INTERVAL=1") );


查看完整回答
反对 回复 2021-06-18
  • 2 回答
  • 0 关注
  • 431 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信