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

JS中如何检测Set集合内是否包含具有指定id的对象

实现说明

你给出的最终代码可以正确实现需求,但存在性能冗余问题:forEach 方法无法中途终止遍历,哪怕已经找到id为4的对象,仍然会遍历完Set内的所有元素,当Set存储数据量较大时会产生不必要的性能开销。

优化实现方案

方案1:for...of实现(性能最优)

使用for...of遍历Set,匹配到目标对象后直接返回结果,无需遍历剩余元素,也不需要单独判断Set长度为空的场景:

const hasObject = (myObjectSet: Set<MyObject>) => {
  for (const myObject of myObjectSet) {
    if(myObject.id === 4) {
      return true
    }
  }
  return false
}

方案2:简洁语法实现(小数据量场景适用)

如果Set存储的元素数量较少,可以直接转数组调用原生some方法,代码更精简:

const hasObject = (myObjectSet: Set<MyObject>) => Array.from(myObjectSet).some(obj => obj.id === 4)

内容的提问来源于stack exchange,提问作者Adri HM

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:54:07