Computer >> Máy Tính >  >> Lập trình >> Javascript

Hàm đếm tần suất của các phần tử được phân tách bằng 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 tách bằng khoảng trắng như thế này -

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

Chúng tôi được yêu cầu viết một hàm JavaScript có trong một chuỗi như vậy. Hàm phải chuẩn bị một mảng tần số của các đối tượng chứa các chữ cái và số lượng của chúng.

Ví dụ

Mã cho điều 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));

Đầu ra

Và đầu ra trong bảng điều khiển 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 }
]