如何在非数组集合中筛选出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
相关产品推荐
相关产品推荐

