[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; // 最终输出结果,就大功告成了
}