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

การหาการกระจายความถี่ของตัวอักษรในสตริง - JavaScript

ฟังก์ชันนี้คืนออบเจ็กต์ที่แสดงความถี่ของแต่ละตัวอักษรในสตริง (รวมช่องว่างและสัญลักษณ์)

ตัวอย่างโค้ด

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) การสถิติภาษา