เราต้องเขียนฟังก์ชันที่รับอาร์เรย์ตัวเลขที่มีค่าซ้ำมาก คืนอาร์เรย์ของค่าที่ปรากฏมากกว่า 1 ครั้ง (แต่ละค่าแสดงเพียงครั้งเดียวในผลลัพธ์)
ตัวอย่าง: [1, 3, 4, 3, 5, 4, 6, 8, 8] → [3, 4, 8]
ตัวอย่างโค้ด
const arr = [1, 3, 4, 3, 5, 4, 6, 8, 8];
const findDuplicates = (arr = []) => {
let map = {}, res = [];
for (let i = 0; i < arr.length; i++) {
if (map[arr[i]]) {
if (map[arr[i]] === 1) { res.push(arr[i]); }
map[arr[i]] = map[arr[i]] + 1;
} else { map[arr[i]] = 1; }
}
return res;
};
console.log(findDuplicates(arr));
ผลลัพธ์
ค่าที่แสดงในคอนโซลจะเป็นดังนี้:
[3, 4, 8]