Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ส่งคืนแผนที่ที่แสดงความถี่ของข้อมูลแต่ละประเภทในอาร์เรย์ใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ที่มีองค์ประกอบของประเภทข้อมูลที่แตกต่างกัน และฟังก์ชันควรส่งคืนแผนที่ที่แสดงความถี่ของข้อมูลแต่ละประเภท

สมมติว่าต่อไปนี้คืออาร์เรย์ของเรา –

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

ตัวอย่าง

ต่อไปนี้เป็นรหัสเพื่อส่งคืนแผนที่ที่แสดงความถี่ของแต่ละประเภทข้อมูล -

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

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็น -

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