Viết hàm classifyArray() nhận mảng chứa nhiều kiểu dữ liệu và trả về Map() nhóm các phần tử theo kiểu dữ liệu của chúng.
Ví dụ:
// Input: ['class', 2, [7, 8, 9], {'name': 'Michael'}, Symbol('foo'), true, false, 'name', 6]// Output Map: Map(5) { 'string' => ['class', 'name'], 'number' => [2, 6], 'object' => [[7, 8, 9], {name: 'Michael'}], 'symbol' => [Symbol(foo)], 'boolean' => [true, false] }Sử dụng reduce():
Ví dụ
const arr = ['class', 2, [7, 8, 9], {'name': 'Michael'}, Symbol('foo'), true, false, 'name', 6];const classifyArray = arr => { return arr.reduce((acc, val) => { const previousData = acc.get(typeof val); if (previousData) { acc.set(typeof val, [...previousData, val]); } else { acc.set(typeof val, [val]); } return acc; }, new Map());};console.log(classifyArray(arr));Kết quả
Đầu ra trong console sẽ là:
Map(5) { 'string' => ['class', 'name'], 'number' => [2, 6], 'object' => [[7, 8, 9], {name: 'Michael'}], 'symbol' => [Symbol(foo)], 'boolean' => [true, false] }