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

如何将JSON数组元素按重复情况拆分至不同数组?

拆分数组中的重复与非重复元素

可以通过数组的reduce和filter方法组合实现,先统计每个元素的出现次数,再根据次数拆分:

实现代码

let test = [
 {
  "id1": "1"
 },
 {
  "id1": "2"
 },
 {
  "id1": "2"
 }
];

// 第一步:统计每个id1的出现次数
const countMap = test.reduce((acc, item) => {
  const key = item.id1;
  acc[key] = (acc[key] || 0) + 1;
  return acc;
}, {});

// 第二步:拆分非重复和重复元素
const ans1 = test.filter(item => countMap[item.id1] === 1);
const ans2 = test.filter(item => countMap[item.id1] > 1);

console.log('ans1:', ans1);
console.log('ans2:', ans2);

代码说明

  • reduce 遍历数组,用对象记录每个id1对应的出现次数,比如最终countMap会是{"1":1, "2":2}。
  • filter 分别根据计数结果筛选元素:计数为1的放进ans1,计数大于1的放进ans2。

这样就能得到你需要的拆分结果,比单纯的for循环更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 23:55:13