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

如何删除JSON中regions字段为空数组的子对象?

解决方案

问题定位

你的原始代码存在两处明显错误:

  • 判断条件不匹配需求:你当前校验的是damage_type字段的长度,而实际需要判断regions数组是否为空
  • 遍历方式存在隐患:使用数字索引遍历对象属性,删除属性后会出现索引错位,导致漏删或报错

修改后代码

jsonfile.readFile(theJsonFile, function (err, obj) {
    if (err) return console.error(err)
    // 一次性获取所有键后遍历,不受删除操作影响
    Object.keys(obj).forEach(key => {
        // 校验regions是否为空数组
        if (obj[key].regions.length === 0) {
            delete obj[key]
        }
    })
    // 如果需要将处理后的结果写回文件,可添加以下代码
    // jsonfile.writeFile(theJsonFile, obj, err => err && console.error(err))
})

逻辑说明

  • 先通过Object.keys()拿到目标对象所有顶层键的完整集合,遍历过程不会因为后续删除属性发生变化
  • 直接读取每个子对象的regions数组长度,长度为0就删除对应的顶层键,完全匹配你的需求

内容的提问来源于stack exchange,提问作者hisam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 21:45:04