Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Hàm đếm tần suất các phần tử phân cách bởi dấu cách trong JavaScript


Giả sử chúng ta có một chuỗi chứa một số chữ cái được phân cách bởi khoảng trắng như sau:

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

Chúng ta cần viết một hàm JavaScript nhận vào một chuỗi như vậy. Hàm nên chuẩn bị một mảng tần suất các object chứa chữ cái và số lượng của chúng.

Ví dụ

Code cho việc này sẽ là:

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));

Kết quả

Kết quả hiển thị trong console sẽ là:

[ 
  { 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 } 
]