Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Viết hàm nhận mảng giá trị và trả về đối tượng JavaScript

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] }