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

如何在JavaScript中移除value字段重复的对象?

基于value字段的数组对象去重方案

你之前的代码是对整个数组对象进行序列化去重,所以会把time/expire不同但value相同的项当成不同元素保留。要实现基于value字段的去重,可以用以下两种方法:

方法一:通过序列化value字段实现通用去重

利用Set记录已出现过的value序列化字符串,结合filter过滤重复项:

const seen = new Set();
const result = array.filter(item => {
  const valueKey = JSON.stringify(item.value);
  if (seen.has(valueKey)) return false;
  seen.add(valueKey);
  return true;
});

这个方法适用于value结构不固定的场景,只要value内容完全一致就会被判定为重复。

方法二:提取value的唯一标识生成Key(性能更优)

如果value的结构固定(比如你示例中的departure.id、date.start、type组合起来就是唯一标识),可以直接拼接这些字段生成唯一Key,比JSON序列化性能更高:

const seen = new Set();
const result = array.filter(item => {
  const { departure, date, type } = item.value;
  const uniqueKey = `${departure.id}-${date.start}-${type}`;
  if (seen.has(uniqueKey)) return false;
  seen.add(uniqueKey);
  return true;
});

这种方法避免了复杂的JSON序列化操作,适合结构稳定的业务场景。

以上两种方法都会保留数组中第一个出现的value对应的对象,后续重复的value项会被过滤掉。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:32:40