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

如何遍历多层JSON对象并提取指定键值生成新的Javascript对象

实现方法(JavaScript)

你可以结合Object.entries()遍历原对象的venue属性的所有键值对,再用map()提取每个数组元素的Status字段即可,核心逻辑如下:

// 原数据
const originalData = {
    "venue": {
        "time1": [
            { "Status": "Available" },
            { "Status": "Unavailable" },
            { "Status": "Unavailable" }
        ],
        "time2": [
            { "Status": "Available" },
            { "Status": "Available" },
            { "Status": "Unavailable" }
        ]
    }
};

// 转换逻辑
const result = Object.fromEntries(
    Object.entries(originalData.venue).map(([timeKey, statusList]) => {
        return [timeKey, statusList.map(item => item.Status)]
    })
);

执行后result就是你要的目标结构:

{
   "time1": ["Available", "Unavailable", "Unavailable"],
   "time2": ["Available", "Available", "Unavailable"]
}

逻辑说明

  • 用Object.entries(originalData.venue)把venue对象的键值对转换成[['time1', 数组], ['time2', 数组]]格式的二维数组,方便遍历
  • 对每一组键值对,用map()遍历对应时间下的状态对象数组,提取每个元素的Status属性组成新数组
  • 最后用Object.fromEntries()把处理后的二维数组转回对象格式

如果需要其他语言的实现,调整对应语法即可,核心逻辑都是遍历外层时间键,内层映射取Status字段。

内容的提问来源于stack exchange,提问作者i-am-niall

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:48:02