如何过滤键值对象组成的数组,筛选条件为目标值存在于对象内部

键值对象数组按值存在性过滤实现
我们可以通过数组遍历+对象值枚举的方式完成过滤,以下是不同常用语言的实现方案:
JavaScript 实现
使用Array.filter()遍历数组,配合Object.values()获取对象所有属性值,通过includes()或some()判断目标值是否存在:
// 示例数据 const sourceArray = [ { id: 1, name: '前端开发', category: '技术' }, { id: 2, name: '产品经理', category: '产品' }, { id: 3, name: '后端开发', category: '技术' } ]; const targetValue = '技术'; // 过滤逻辑:保留所有属性值包含目标值的项 const filteredArray = sourceArray.filter(item => Object.values(item).includes(targetValue) ); // 若需要自定义匹配规则(如字符串模糊匹配),可替换为some方法 const fuzzyFilteredArray = sourceArray.filter(item => Object.values(item).some(val => String(val).includes('开发')) );
Python 实现
使用列表推导式遍历数组,通过字典的values()方法获取所有值,直接判断目标值是否在值列表中:
# 示例数据 source_array = [ {"id": 1, "name": "前端开发", "category": "技术"}, {"id": 2, "name": "产品经理", "category": "产品"}, {"id": 3, "name": "后端开发", "category": "技术"} ] target_value = "技术" # 过滤逻辑 filtered_array = [item for item in source_array if target_value in item.values()]
内容的提问来源于stack exchange,提问作者Shayan Noruzi
相关产品推荐
相关产品推荐

