สมมติว่าเราจะได้รับอาร์เรย์ตัวเลข/สตริงที่มีรายการซ้ำ เราต้องคืนความถี่ของแต่ละสมาชิก การคืนอ็อบเจกต์ที่มีสมาชิกเป็น key และความถี่เป็น value เหมาะสมที่สุด
เราจะวนลูปอาร์เรย์ด้วย forEach() และเพิ่มจำนวนนับในอ็อบเจกต์ถ้ามีอยู่แล้ว มิฉะนั้นสร้างคุณสมบัติใหม่สำหรับสมาชิกนั้น
และสุดท้าย คืนค่าอ็อบเจกต์
โค้ดเต็ม
ตัวอย่าง
const arr = [2,5,7,8,5,3,5,7,8,5,3,4,2,4,2,1,6,8,6];
const getFrequency = (array) => {
const map = {};
array.forEach(item => {
if(map[item]){
map[item]++;
}else{
map[item] = 1;
}
});
return map;
};
console.log(getFrequency(arr));
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น
{ '1': 1, '2': 3, '3': 2, '4': 2, '5': 4, '6': 2, '7': 2, '8': 3 }