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

JavaScript如何删除对象数组中value字段仅出现一次的所有元素

实现方案

你可以分两步完成,先全局统计所有value的出现频次,再过滤数组,完全避开循环过程中动态修改原数组的问题:

步骤1:统计value出现频次

用reduce遍历一次数组,记录每个value总共出现多少次:

const valueCount = data.reduce((countMap, item) => {
  countMap[item.value] = (countMap[item.value] || 0) + 1
  return countMap
}, {})

步骤2:过滤数组

只要保留出现次数≥2的元素即可:

const result = data.filter(item => valueCount[item.value] >= 2)

按你描述的需求,上面的代码执行后会保留所有value重复出现的元素,你给出的期望结果里缺失了{"id": 8, "value": "d"}属于笔误,如果你确实需要额外过滤该元素,可以调整filter里的判断条件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:45:07