문제:
주어진 개체 배열에서 작업은 재구성하는 것입니다. 특정 키를 기반으로 중첩된 구조를 생성하여 렌더링에 최적화된 형식으로 변환합니다. 값.
예:
입력 배열:
[ { tab: 'Results', section: '2017', title: 'Full year Results', description: 'Something here', }, { tab: 'Results', section: '2017', title: 'Half year Results', description: 'Something here', }, { tab: 'Reports', section: 'Marketing', title: 'First Report', description: 'Something here', } ]
원하는 출력:
[ { 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을 재귀적으로 적용합니다.
const output = groupAndMap(items, "tab", "sections", arr => groupAndMap(arr, "section", "items") );
이 솔루션은 다음을 수행합니다. 특정 키 값을 기반으로 객체 배열을 그룹화하고 중첩하는 목적.
위 내용은 최적화된 렌더링을 위해 키 값을 기반으로 개체 배열을 중첩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!