如何用JavaScript将含动态键的嵌套对象转换为指定结构的对象数组
实现方案
实现思路
- 遍历原数据
holidayCalendar数组的每一项,通过Object.keys()取每个对象的第一个动态键作为location值 - 遍历每个
location对应的年份数组,再次通过Object.keys()取每个对象的第一个动态键作为year值 - 组装
location、year和对应假期数组到新对象,收集后返回目标结构 - 逻辑不硬编码任何键名,支持任意动态的地区、年份键值
代码实现
function transformHolidayData(original) { const resList = [] original.holidayCalendar.forEach(locObj => { const location = Object.keys(locObj)[0] const yearArr = locObj[location] yearArr.forEach(yearObj => { const year = Object.keys(yearObj)[0] resList.push({ location, year, holidays: yearObj[year] }) }) }) return { holidayCalendar: resList } }
使用示例
// 填入你的原始服务端返回数据 const originalData = { "holidayCalendar": [ // 原始数据内容... ] } // 调用转换方法得到目标结构 const targetData = transformHolidayData(originalData) // 可直接打印或使用转换后的数据 console.log(targetData)
内容的提问来源于stack exchange,提问作者Sooraj Jose
相关产品推荐
相关产品推荐

