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

Lặp qua và nhận tần suất của tất cả các phần tử trong JavaScript mảng

Giả sử, chúng ta sẽ được cung cấp một mảng số / chuỗi có chứa một số mục nhập trùng lặp, tất cả những gì chúng ta phải làm là trả về tần suất của mỗi phần tử trong mảng. Trả lại một đối tượng với tư cách là khóa và giá trị của nó là tần suất sẽ là lựa chọn hoàn hảo cho tình huống này.

Chúng tôi sẽ lặp lại mảng bằng vòng lặp forEach () và tiếp tục tăng số lượng phần tử trong đối tượng nếu nó đã tồn tại nếu không, chúng tôi sẽ tạo một thuộc tính mới cho phần tử đó trong theobject.

Và cuối cùng, chúng tôi sẽ trả về đối tượng.

Mã đầy đủ cho vấn đề này sẽ là -

Ví dụ

const arr = [2,5,7,8,5,3,5,7,8,5,3,4,2,4,2,1,6,8,6];
const getFrequency = (array) => {
   const map = {};
   array.forEach(item => {
      if(map[item]){
         map[item]++;
      }else{
         map[item] = 1;
      }
   });
   return map;
};
console.log(getFrequency(arr));

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

{ '1': 1, '2': 3, '3': 2, '4': 2, '5': 4, '6': 2, '7': 2, '8': 3 }