You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 00:36:04