사용자 정의 키로 중첩된 객체 그룹화
렌더링을 용이하게 하려면 객체 배열을 특정 키 이름을 가진 그룹 객체로 변환해야 합니다. 목표는 아래와 같이 지정된 키로 객체를 그룹화하는 출력을 생성하는 것입니다.
const output = [ { tab: 'Results', sections: [ { section: '2017', items: [ { 'item that belongs here' }, { ... } ], }, }, { tab: 'Reports', sections: [ { section: 'Marketing', items: [ { ... }, { ... } ], }, }, ... ]
구현 접근 방식
이 변환은 다음을 통해 달성할 수 있습니다. Lodash 함수 _.map과 _.groupBy를 결합합니다.
function groupAndMap(items, itemKey, childKey, predic){ return _.map(_.groupBy(items,itemKey), (obj,key) => ({ [itemKey]: key, [childKey]: (predic && predic(obj)) || obj })); }
groupAndMap 함수는 4개의 매개변수:
이 함수는 먼저 _.groupBy를 사용하여 itemKey를 기준으로 항목을 그룹화합니다. 그런 다음 그룹화된 객체를 반복하고 itemKey 및 childKey를 사용하여 새 객체를 생성합니다. predic 매개변수가 제공되면 중첩된 그룹에 조건자를 적용합니다.
사용 예
이 함수를 사용하여 주어진 객체를 그룹화하려면 다음과 같이 호출하세요. :
var result = groupAndMap(items,"tab","sections", arr => groupAndMap(arr,"section", "items"));
"탭" 및 "섹션" 키를 사용하여 항목을 그룹화하여 원하는 결과를 얻습니다. 출력합니다.
위 내용은 Lodash를 사용하여 사용자 정의 키로 중첩된 객체를 효율적으로 그룹화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!