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

如何从多维数组中去除重复条目?按linked_article_id保留唯一值

多维数组按linked_article_id去重解决方案

嘿,我来帮你搞定这个数组去重的问题!针对多维数组里linked_article_id重复的条目,你可以试试下面这两种实用方法,应该能解决你的困扰:

方法一:用对象记录已出现的ID(保留第一个重复条目)

这种方法逻辑直观,适合快速理解,会保留数组中第一个出现的linked_article_id条目,后续重复的直接跳过:

// 替换成你自己的多维数组
const originalArray = [
  { id: 1, linked_article_id: 3, title: "文章1" },
  { id: 2, linked_article_id: 5, title: "文章2" },
  { id: 3, linked_article_id: 3, title: "文章3" },
  { id: 4, linked_article_id: 7, title: "文章4" }
];

const seenIds = {}; // 用来记录已经出现过的linked_article_id
const uniqueArray = [];

// 遍历原数组,筛选唯一条目
for (const item of originalArray) {
  // 如果当前ID没被记录过,就加入结果数组并标记
  if (!seenIds[item.linked_article_id]) {
    seenIds[item.linked_article_id] = true;
    uniqueArray.push(item);
  }
}

console.log(uniqueArray);
// 输出结果会保留linked_article_id=3的第一个条目,其他唯一值也全部保留

方法二:利用Map的键唯一性(灵活选择保留第一个或最后一个)

Map是ES6新增的数据结构,键的唯一性刚好适配去重需求。如果想保留最后一个出现的重复条目,可以用一行简洁代码实现:

const originalArray = [/* 你的数组内容 */];
const uniqueArray = Array.from(
  new Map(originalArray.map(item => [item.linked_article_id, item])).values()
);

如果还是想保留第一个出现的条目,稍微调整逻辑即可:

const originalArray = [/* 你的数组内容 */];
const idMap = new Map();

for (const item of originalArray) {
  // 只有当Map里没有这个ID时才添加
  if (!idMap.has(item.linked_article_id)) {
    idMap.set(item.linked_article_id, item);
  }
}

const uniqueArray = Array.from(idMap.values());

如果之前你尝试的函数没生效,大概率是因为没有精准针对linked_article_id做唯一键判断,或者去重逻辑里的条件没写对。上面这两种方法都是直接以linked_article_id为核心判断依据,应该能解决你的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:09:11