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

循环前过滤数组值:如何排除对应带有.empty-box类的id数组项

优化方案

方案1:极简直接筛选(适合小数据量场景)

直接在filter中判断对应DOM元素是否包含empty-box类,无需提前收集空盒子ID,代码更精简:

const list = myArray.filter(item => !$(`.box[data-id="${item.id}"]`).hasClass('empty-box'))

方案2:高性能版本(适合大数据量场景)

将空盒子ID存入Set结构(查找复杂度O(1),远优于数组includes的O(n)),同时用jQuery的map方法简化ID收集逻辑,比原实现性能更高、代码更简洁:

const emptyIdSet = new Set($('.empty-box').map((_, el) => $(el).data('id')).get())
const list = myArray.filter(item => !emptyIdSet.has(item.id))

方案对比

  • 方案1代码更短、可读性更高,适合数组长度小于100的常规场景
  • 方案2仅遍历一次empty-box节点,后续筛选的查找效率更高,适合数组长度大、DOM节点多的场景

原实现逻辑是完全正确的,以上方案是在可读性、性能层面的优化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:48:02