如何在JavaScript中将mokeData数组转换为mokeData2的目标数据结构
JavaScript 转换实现方案
直接使用数组reduce方法即可高效完成转换,示例代码如下:
const mokeData = ["Friday 07:07:00", "Sunday 12:05:00"]; // 转换逻辑 const mokeData2 = [ mokeData.reduce((result, currentStr) => { // 按空格拆分字符串,拿到星期和对应时间 const [weekDay, time] = currentStr.split(' '); // 往结果对象中添加键值对 result[weekDay] = time; return result; }, {}) ]; console.log(mokeData2); // 输出 [{ Friday: "07:07:00", Sunday: "12:05:00" }]
如果更习惯普通循环的写法,也可以用下面的实现,逻辑更直观:
const mokeData = ["Friday 07:07:00", "Sunday 12:05:00"]; const tempObj = {}; for (let i = 0; i < mokeData.length; i++) { const [weekDay, time] = mokeData[i].split(' '); tempObj[weekDay] = time; } const mokeData2 = [tempObj];
逻辑说明
- 遍历原字符串数组,对每个字符串项按空格拆分,解构赋值分别得到星期字段、时间字段
- 把星期作为对象属性名,时间作为属性值存入临时对象
- 最后将完整的临时对象放入数组中,即得到目标结构
注意:如果原数组中存在重复的星期字段,后出现的时间会覆盖先出现的,符合常规去重/更新逻辑。
内容的提问来源于stack exchange,提问作者JackMusk
相关产品推荐
相关产品推荐

