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

JavaScript의 속성별로 개체 그룹화

<시간/>

다음과 같은 일부 과일 및 채소에 대한 데이터를 포함하는 객체 배열이 있다고 가정합니다. -

const arr = [
   {food: 'apple', type: 'fruit'},
   {food: 'potato', type: 'vegetable'},
   {food: 'banana', type: 'fruit'},
];

이러한 배열을 취하는 JavaScript 함수를 작성해야 합니다.

그런 다음 우리 함수는 객체의 "유형" 속성을 기반으로 배열 객체를 그룹화해야 합니다.

모든 "과일" 유형의 개체는 함께 그룹화되고 "야채" 유형은 별도로 그룹화된다는 의미입니다.

예시

이에 대한 코드는 -

const arr = [
   {food: 'apple', type: 'fruit'},
   {food: 'potato', type: 'vegetable'},
   {food: 'banana', type: 'fruit'},
];
const transformArray = (arr = []) => {
   const res = [];
   const map = {};
   let i, j, curr;
   for (i = 0, j = arr.length; i < j; i++) {
      curr = arr[i];
      if (!(curr.type in map)) {
         map[curr.type] = {type: curr.type, foods: []};
         res.push(map[curr.type]);
      };
      map[curr.type].foods.push(curr.food);
   };
   return res;
};
console.log(transformArray(arr));

출력

콘솔의 출력은 -

[
   { type: 'fruit', foods: [ 'apple', 'banana' ] },
   { type: 'vegetable', foods: [ 'potato' ] }
]