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

หาชื่อผลไม้ที่ปรากฏมากที่สุดด้วย for...in loop - JavaScript

สมมติว่าเรามีสตริงคั่นด้วยจุลภาคที่มีชื่อผลไม้:

const str = 'Banana,Banana,Pear,Orange,Apple,Melon,Grape,Apple,Banana,Grape,Melon,Grape,Melon,Apple,Grape,Banana,Orange,Melon,Orange,Banana,Banana,Orange,Pear,Grape,Orange,Orange,Apple,Apple,Banana';

เราต้องเขียนฟังก์ชันที่รับสตริงแบบนี้และใช้ for...in loop หาชื่อผลไม้ที่ปรากฏมากที่สุด

ตัวอย่าง

โค้ดต่อไปนี้เป็นตัวอย่าง:

const str = 'Banana,Banana,Pear,Orange,Apple,Melon,Grape,Apple,Banana,Grape,Melon,Grape,Melon,Apple,Grape,Banana,Orange,Melon,Orange,Banana,Banana,Orange,Pear,Grape,Orange,Orange,Apple,Apple,Banana';

const findMostFrequent = str => {
  const strArr = str.split(',');
  const creds = strArr.reduce((acc, val) => {
    if(acc.has(val)){
      acc.set(val, acc.get(val) + 1);
    }else{
      acc.set(val, 1);
    };
    return acc;
  }, new Map());
  return Array.from(creds).sort((a, b) => b[1] - a[1])[0][0];
};

console.log(findMostFrequent(str));

ผลลัพธ์

จะแสดงผลในคอนโซลดังนี้:

Banana