Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ฟังก์ชันสำหรับการนับความถี่ขององค์ประกอบที่คั่นด้วยช่องว่างใน JavaScript


สมมติว่าเรามีสตริงที่มีตัวอักษรบางตัวคั่นด้วยช่องว่างเช่นนี้ -

const str = 'a b c d a v d e f g q';

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับสตริงดังกล่าว ฟังก์ชันควรเตรียมอาร์เรย์ความถี่ของออบเจ็กต์ที่มีตัวอักษรและการนับ

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const str = 'a b c d a v d e f g q';
const countFrequency = (str = '') => {
   const result = [];
   const hash = {};
   const words = str.split(" ");
   words.forEach(function (word) {
      word = word.toLowerCase();
      if (word !== "") {
         if (!hash[word]) {
            hash[word] = { name: word, count: 0 };
            result.push(hash[word]);
         };
         hash[word].count++;
      };
   });
   return result.sort((a, b) => b.count − a.count)
}
console.log(countFrequency(str));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

[
   { name: 'a', count: 2 },
   { name: 'd', count: 2 },
   { name: 'b', count: 1 },
   { name: 'c', count: 1 },
   { name: 'v', count: 1 },
   { name: 'e', count: 1 },
   { name: 'f', count: 1 },
   { name: 'g', count: 1 },
   { name: 'q', count: 1 }
]