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

如何在非数组集合中筛选出type为array的对象

筛选对象中type为"array"的字段

原始数据

{
  "field1": {
    "type": "string",
    "value": "test"
  },
  "field2": {
    "type": "array",
    "value": []
  },
  "field3": {
    "type": "string",
    "value": "test"
  },
  "field4": {
    "type": "array",
    "value": []
  }
}

期望结果

{
  "field2": {
    "type": "array",
    "value": []
  },
  "field4": {
    "type": "array",
    "value": []
  }
}

实现方案

JavaScript 实现

利用Object.entries、filter和Object.fromEntries组合处理:

const originalObj = {
  "field1": { "type": "string", "value": "test" },
  "field2": { "type": "array", "value": [] },
  "field3": { "type": "string", "value": "test" },
  "field4": { "type": "array", "value": [] }
};

// 筛选出type属性为"array"的字段
const filteredObj = Object.fromEntries(
  Object.entries(originalObj).filter(([key, value]) => value.type === 'array')
);

console.log(filteredObj);
  • 逻辑:先把对象转成键值对数组,过滤出符合条件的项,再转回对象格式。

Python 实现

用字典推导式快速完成筛选:

original_obj = {
    "field1": {"type": "string", "value": "test"},
    "field2": {"type": "array", "value": []},
    "field3": {"type": "string", "value": "test"},
    "field4": {"type": "array", "value": []}
}

# 筛选type为"array"的字段
filtered_obj = {key: val for key, val in original_obj.items() if val['type'] == 'array'}

print(filtered_obj)
  • 逻辑:遍历原对象的所有键值对,仅保留值中type等于"array"的条目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 18:00:02