Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

값 배열을 취하고 객체 JavaScript를 반환하는 함수를 작성하려면 어떻게 해야 합니까?

<시간/>

예를 들어, 혼합 데이터 유형을 포함하는 배열을 받아 데이터 유형별로 그룹화된 요소와 함께 Map()을 반환하는 함수 classifyArray()를 작성해야 한다고 가정해 보겠습니다.

예를 들어 -

// if the input array is:
const arr = ['class', 2, [7, 8, 9], {"name": "Michael"}, Symbol('foo'),
true, false, 'name', 6];
// then the output Map should be:
Map(5) {
   'string' => [ 'class', 'name' ],
   'number' => [ 2, 6 ],
   'object' => [ [ 7, 8, 9 ], { name: 'Michael' } ],
   'symbol' => [ Symbol(foo) ],
   'boolean' => [ true, false ]
}

이제 이 함수의 코드를 작성해 보겠습니다 -

예시

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

출력

콘솔의 출력은 -

Map(5) {
   'string' => [ 'class', 'name' ],
   'number' => [ 2, 6 ],
   'object' => [ [ 7, 8, 9 ], { name: 'Michael' } ],
   'symbol' => [ Symbol(foo) ],
   'boolean' => [ true, false ]
}