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

如何在JavaScript中过滤数组内包含指定字符串标签的所有对象

标签匹配筛选实现方案

需求说明

你需要从存储了标签字段的对象数组中,筛选出所有标签字段包含指定搜索标签的对应对象。
示例输入数组如下:

[
    {"tags": ["a"]},
    {"tags": ["a","b"]},
    {"tags": ["a","c"]},
    {"tags": ["a","b","c"]},
    {"tags": ["a","d"]}
] 

预期筛选结果:

  • 搜索"a"时返回全部5个对象
  • 搜索"b"时返回2个符合条件的对象
  • 搜索"c"时返回2个符合条件的对象
    注:你给出的预期结果中标注搜索"b"返回索引1和4属于笔误,实际符合条件的是索引1和索引3的对象

实现代码

JavaScript 版本

// 参数说明:arr 是待筛选的标签对象数组,targetTag 是要搜索的目标标签
function filterByTag(arr, targetTag) {
  return arr.filter(item => item.tags.includes(targetTag))
}

// 调用示例
const tagArr = [
    {"tags": ["a"]},
    {"tags": ["a","b"]},
    {"tags": ["a","c"]},
    {"tags": ["a","b","c"]},
    {"tags": ["a","d"]}
]
console.log(filterByTag(tagArr, 'b')) // 输出符合要求的2个对象

Python 版本

# 参数说明:arr 是待筛选的标签对象数组,target_tag 是要搜索的目标标签
def filter_by_tag(arr, target_tag):
  return [item for item in arr if target_tag in item['tags']]

# 调用示例
tag_arr = [
    {"tags": ["a"]},
    {"tags": ["a","b"]},
    {"tags": ["a","c"]},
    {"tags": ["a","b","c"]},
    {"tags": ["a","d"]}
]
print(filter_by_tag(tag_arr, 'c')) // 输出符合要求的2个对象

逻辑说明

核心逻辑是遍历数组的每一个元素,校验当前元素的tags属性中是否包含目标搜索标签,保留所有符合校验条件的元素即可。实现方案时间复杂度为O(n*m),其中n是数组总长度,m是单条记录的标签数量,适用于常规小体量数据场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:15:04