我有一个字符串: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);
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") );
添加回答
举报
0/150
提交
取消