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

如何在JavaScript中合并ccAddresses与toAddresses数组并去重

合并对象数组地址并去重的实现方案

需求说明

需要将对象数组old中每个元素的ccAddresses和toAddresses数组合并,最终得到一个包含无重复地址的newAddresses数组,输出格式如下:

{ "newAddresses": ["john@gmail.com", "joshua@gmail.com", "jane@gmail.com", "james@gmail.com"] }

现有代码问题

当前代码仅提取了每个元素的ccAddresses,未处理toAddresses,也没有做合并去重,最终输出的是对象数组,不符合需求。

正确实现代码

const old = [
  {
    "ccAddresses": ["john@gmail.com", "joshua@gmail.com"],
  },
  { 
    "ccAddresses": ["jane@gmail.com", "joshua@gmail.com"],
    "toAddresses": ["jane@gmail.com", "james@gmail.com"],
  }
];

// 提取所有ccAddresses和toAddresses,扁平化后去重
const allAddresses = old.flatMap(item => [
  ...(item.ccAddresses || []),
  ...(item.toAddresses || [])
]);
const uniqueAddresses = [...new Set(allAddresses)];

// 组装成要求的输出格式
const result = { newAddresses: uniqueAddresses };

console.log(result);

代码解释

  • 用flatMap遍历数组,将每个元素的ccAddresses和toAddresses(兼容字段不存在的情况,默认取空数组)展开合并为一维数组
  • 借助Set自动去重的特性,将合并后的数组转为集合再转回数组,得到无重复的地址列表
  • 最后将去重后的数组包装成需求要求的对象格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:18:27