Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การหาตัวเลขซ้ำทั้งหมดในอาร์เรย์ที่มีหลายค่าซ้ำใน JavaScript

เราต้องเขียนฟังก์ชันที่รับอาร์เรย์ตัวเลขที่มีค่าซ้ำมาก คืนอาร์เรย์ของค่าที่ปรากฏมากกว่า 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]