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

Trả về một bản đồ đại diện cho tần suất của từng loại dữ liệu trong một mảng trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript đưa vào một mảng có chứa các phần tử của các kiểu dữ liệu khác nhau và hàm phải trả về một bản đồ thể hiện tần suất của từng loại dữ liệu.

Giả sử sau đây là mảng của chúng tôi -

const arr = [23, 'df', undefined, null, 12, {
   name: 'Rajesh'
}, [2, 4, 7], 'dfd', null, Symbol('*'), 8];

Ví dụ

Sau đây là mã để trả về một bản đồ đại diện cho tần suất của mỗi loại dữ liệu -

const arr = [23, 'df', undefined, null, 12, {
   name: 'Rajesh'
}, [2, 4, 7], 'dfd', null, Symbol('*'), 8];
const countDataTypes = arr => {
   return arr.reduce((acc, val) => {
      const dataType = typeof val;
      if(acc.has(dataType)){
         acc.set(dataType, acc.get(dataType)+1);
      }else{
         acc.set(dataType, 1);
      };
      return acc;
   }, new Map());
};
console.log(countDataTypes(arr));

Đầu ra

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

Map(5) {
   'number' => 3,
   'string' => 2,
   'undefined' => 1,
   'object' => 4,
      'symbol' => 1
}