[Easy] JavaScript 阵列去除重复 removeDuplicates

2024年5月9日

💎 加入 E+ 成長計畫 與超過 400+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源

阵列去除重复 remove duplicates,是 JavaScript 程式面试中,很常会考的入门考题。

阵列去除重复在做的事很简单,我们透过例子来说明:

removeDuplicate([1, 2, 3, 2]); // [1, 2, 3]
removeDuplicate([5, 5, 6, 6]); // [5, 6]

解法

如果想要做到 O(n) 的时间复杂度,来去除重复,我们可以这么做

function removeDuplicate(arr) {
  // 先建立一个叫 seen 的集合,来存下已经有的元素
  const seen = new Set();
  // 建立一个叫 output 的阵列,用来输出最终结果
  const output = [];

  // 用回圈,走过原本的阵列
  for (let item of array) {
    // 判断当前的元素,是否已经在 seen,如果不在,表示还没有重复
    if (!seen.has(item)) {
      output.push(item); // 所以这时可以放入要被输出的 output 阵列
      seen.add(item, true); // 这时纪录一下这个项目已经被放入,下次就不会再被放入
    }
  }
  return output; // 最终输出结果,就大功告成了
}
🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們