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

วนลูปและหาความถี่ของทุกสมาชิกในอาร์เรย์ JavaScript

สมมติว่าเราจะได้รับอาร์เรย์ตัวเลข/สตริงที่มีรายการซ้ำ เราต้องคืนความถี่ของแต่ละสมาชิก การคืนอ็อบเจกต์ที่มีสมาชิกเป็น 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 }