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

Angular中如何根据接口返回JSON的字段值动态过滤生成目标JSON结构

实现方案

你可以通过遍历对象所有键的方式实现动态筛选,不需要逐个字段写if判断,两种目标结果的实现代码如下:


场景1:得到值为0的字段组成的键值对对象

// 通用筛选函数,可自定义匹配的目标值
function filterFieldsByValue(originObj: Record<string, any>, targetValue: any) {
  // 遍历对象所有键值对,筛选出值匹配的项后重新组装为对象
  return Object.fromEntries(
    Object.entries(originObj).filter(([_, value]) => value === targetValue)
  )
}

// 调用示例,response为你拿到的接口返回JSON
const result = filterFieldsByValue(response, 0)

调用后输出的结果就是你需要的第一种格式:

{
  "First_Name": 0,
  "Company": 0,
  "Country_Code": 0
}

场景2:得到值为0的字段名组成的数组

// 通用获取字段名函数
function getFieldNamesByValue(originObj: Record<string, any>, targetValue: any) {
  // 遍历所有字段名,筛选出对应值匹配的字段
  return Object.keys(originObj).filter(key => originObj[key] === targetValue)
}

// 调用示例
const avoidFields = getFieldNamesByValue(response, 0)

调用后输出的结果就是你需要的第二种格式:

["First_Name", "Company", "Country_Code"]

原代码问题说明

你现有代码中把单条response包装进数组遍历、硬编码判断单个字段的写法,自然需要大量if语句逐个匹配字段,上述通用函数不需要修改即可适配后续JSON新增字段的场景,完全满足动态处理需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:06:00