ฟังก์ชันนี้คืนออบเจ็กต์ที่แสดงความถี่ของแต่ละตัวอักษรในสตริง (รวมช่องว่างและสัญลักษณ์)
ตัวอย่างโค้ด
const str = 'This string will be used to calculate frequency distribution';
const frequencyDistribution = str => {
const map = {};
for (let i = 0; i < str.length; i++) {
map[str[i]] = (map[str[i]] || 0) + 1;
}
return map;
};
console.log(frequencyDistribution(str));
วิธีทันสมัยกว่า
const frequencyDistribution = str =>
[...str].reduce((acc, ch) => (acc[ch] = (acc[ch] || 0) + 1, acc), {});
ผลลัพธ์
{
T: 1, h: 1, i: 6, s: 4, ' ': 8, t: 5, r: 3, n: 3, g: 1,
w: 1, l: 4, b: 2, e: 5, u: 4, d: 2, o: 2, c: 3, a: 2,
f: 1, q: 1, y: 1
}
ประยุกต์ใช้: การวิเคราะห์ข้อความ การบีบอัดข้อมูล (Huffman coding) การสถิติภาษา