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

JavaScript如何匹配字符串数组值并根据选中工作区过滤受众列表

工作区筛选受众实现方案

核心思路是先把选中的工作区UID提取为集合提升查找效率,再用数组内置方法完成过滤,不需要手动写嵌套循环:

  1. 提取选中工作区的UID,存入Set结构,相比数组查询时间复杂度从O(n)降到O(1),数据量越大性能优势越明显
  2. 先判断是否有选中的工作区,如果没有直接返回全量受众列表
  3. 过滤受众数组,只要该受众所属的工作区有任意一个UID命中选中集合,就保留该条数据

完整实现代码

// 提取选中的工作区UID集合
const selectedWorkspaceUids = new Set(selectedWorkspaces.map(workspace => workspace.uid));
// 执行过滤逻辑
const filteredAudiences = selectedWorkspaceUids.size === 0
  ? audiences
  : audiences.filter(audience => 
      audience.workspaces.some(uid => selectedWorkspaceUids.has(uid))
    );

用到的方法说明

  • Array.map():遍历选中的工作区对象数组,提取所有UID生成新数组
  • Set:用于存储UID集合,提供O(1)时间复杂度的存在性查询
  • Array.filter():遍历受众列表,返回符合筛选条件的元素组成的新数组
  • Array.some():遍历受众所属的工作区UID数组,只要有一个元素命中选中集合就返回true,提前终止遍历减少性能消耗

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:42:00