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

如何在JavaScript中移除对象中的重复值

解决方法

方法一:直接删除指定重复键

如果你明确知道要移除的键(比如要保留i移除s),直接用delete操作符就能快速实现:

let obj = { T: 1, h: 1, i: 3, s: 3, t: 1, r: 1, n: 1, g: 1 };

// 保留i,移除s
delete obj.s;
// 若要保留s,移除i则执行:delete obj.i;

console.log(obj);
// 执行delete obj.s后输出:{ T: 1, h: 1, i: 3, t: 1, r: 1, n: 1, g: 1 }

方法二:动态处理特定值的重复

如果不知道具体重复的键,只需要处理值为3的重复项,可以通过遍历对象,保留第一个出现的目标值键,删除后续的:

let obj = { T: 1, h: 1, i: 3, s: 3, t: 1, r: 1, n: 1, g: 1 };
let targetCount = 0;

for (const key in obj) {
  if (obj[key] === 3) {
    targetCount++;
    // 仅保留第一个值为3的键,删除后续的
    if (targetCount > 1) {
      delete obj[key];
    }
  }
}

console.log(obj);
// 输出:{ T: 1, h: 1, i: 3, t: 1, r: 1, n: 1, g: 1 }

方法三:通用处理所有值的重复(保留首次出现的键值对)

如果需要自动处理对象中所有值重复的情况,只保留每个值第一次出现的键值对,可以用Set来跟踪已出现的值:

let obj = { T: 1, h: 1, i: 3, s: 3, t: 1, r: 1, n: 1, g: 1 };
const seenValues = new Set();
const uniqueObj = {};

for (const key in obj) {
  const value = obj[key];
  if (!seenValues.has(value)) {
    seenValues.add(value);
    uniqueObj[key] = value;
  }
}

console.log(uniqueObj);
// 输出:{ T: 1, i: 3 }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:57:14