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

Đếm số lần xuất hiện của các phần tử mảng JavaScript và đưa vào một mảng 2d mới

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một mảng các giá trị theo nghĩa đen. Sau đó, hàm sẽ đếm tần suất của từng phần tử của mảng đầu vào và chuẩn bị một mảng mới trên cơ sở đó.

Ví dụ - Nếu mảng đầu vào là -

const arr = [5, 5, 5, 2, 2, 2, 2, 2, 9, 4];

Sau đó, kết quả đầu ra phải là -

const output = [
   [5, 3],
   [2, 5],
   [9, 1],
   [4, 1]
];

Ví dụ

Mã cho điều này sẽ là -

const arr = [5, 5, 5, 2, 2, 2, 2, 2, 9, 4];
const frequencyArray = (arr = []) => {
   const res = [];
   arr.forEach(el => {
      if (!this[el]) {
         this[el] = [el, 0];
         res.push(this[el])
      };
      this[el][1] ++
   }, {});
   return res;
};
console.log(frequencyArray(arr));

Đầu ra

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

[ [ 5, 3 ], [ 2, 5 ], [ 9, 1 ], [ 4, 1 ] ]