Trả về Map tần suất kiểu dữ liệu trong mảng JavaScript
Chúng ta cần viết một hàm JavaScript nhận vào một mảng chứa các phần tử khác kiểu dữ liệu và hàm nên trả về một Map đại diện cho tần suất của mỗi kiểu dữ liệu.
Giả sử mảng sau:
const arr = [23, 'df', undefined, null, 12, {
name: 'Rajesh' }, [2, 4, 7], 'dfd', null, Symbol('*'), 8];
Ví dụ
Mã sau trả về Map tần suất kiểu 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
Kết quả trong console sẽ là:
Map(5) {
'number' => 3,
'string' => 2,
'undefined' => 1,
'object' => 4,
'symbol' => 1 }