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

如何删除JavaScript数组中所有存在属性重复的对象实例

JavaScript数组删除所有指定属性重复的对象实现方案

实现思路

  1. 首次遍历数组统计每个指定属性值的出现次数
  2. 二次遍历过滤掉所有出现次数大于1的元素即可

代码实现

function removeAllDuplicates(data, key) {
  const occurrenceCount = new Map();
  // 统计每个key值的出现次数
  data.forEach(item => {
    const currentKey = key(item);
    occurrenceCount.set(currentKey, (occurrenceCount.get(currentKey) || 0) + 1);
  });
  // 仅保留只出现一次的元素
  return data.filter(item => occurrenceCount.get(key(item)) === 1);
}

使用示例

针对你给出的测试数组,调用方式和原有函数完全一致:

const testArr = [
  { name: 'name1', value: 15 },
  { name: 'name2', value: 16 },
  { name: 'name3', value: 17 },
  { name: 'name1', value: 18 }
];
// 按name属性去重,删除所有重复属性对应的实例
const result = removeAllDuplicates(testArr, item => item.name);

运行后result的值和你预期的结果完全一致。
该方案时间复杂度为O(n),仅遍历两次数组,大数据量场景下也能保持良好性能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 14:12:01