如何将CMS返回的格式不佳数组转为指定结构的对象数组?
如何将格式不佳的日期时间数组转换为对象数组?
你可以利用JavaScript的map()方法结合字符串拆分来实现这个需求,核心思路是遍历原数组的每个元素,把日期和时间拆分开后组装成目标对象:
实现代码
// 原数组 let daysOffArray = ["2022-08-22, 08:00 - 14:00","2022-08-23, 08:00 - 13:00"]; // 转换逻辑 let daysOff = daysOffArray.map(item => { // 按", "拆分元素,得到日期和时间部分 const [date, time] = item.split(', '); return { date, time }; }); console.log(daysOff);
输出结果
[ { date: "2022-08-22", time: "08:00 - 14:00" }, { date: "2022-08-23", time: "08:00 - 13:00" } ]
鲁棒性优化
如果CMS返回的字符串里逗号前后的空格不固定(比如有的是2022-08-22,08:00或者2022-08-22 , 08:00),可以用正则表达式来拆分,兼容各种空格情况:
let daysOff = daysOffArray.map(item => { const [date, time] = item.split(/\s*,\s*/); return { date, time }; });
内容的提问来源于stack exchange,提问作者Filip Huhta
相关产品推荐
相关产品推荐

