고유한 이름을 가진 개체 배열의 여러 키 그룹화
당면 작업에는 렌더링을 더 쉽게 하기 위해 개체 배열을 수정하는 작업이 포함됩니다. 목표는 원래 배열의 실제 이름에 관계없이 특정 키로 개체를 그룹화하는 것입니다.
다음 입력 배열을 고려하세요.
const items = [ { 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', } ];
목표 출력은 새 배열을 갖는 것입니다. 다음 구조를 사용합니다:
const output = [ { tab: 'Results', sections: [ { section: '2017', items: [ { 'item that belongs here' }, { ... } ], }, }, { tab: 'Reports', sections: [ { section: 'Marketing', items: [ { ... }, { ... } ], }, }, ... ]
이를 달성하기 위해 Lodash의 _.map과 _.groupBy의 조합을 사용할 수 있습니다. 함수:
const groupAndMap = (items, itemKey, childKey, predic) => { return _.map(_.groupBy(items, itemKey), (obj, key) => ({ [itemKey]: key, [childKey]: (predic && predic(obj)) || obj })); }; var result = groupAndMap(items, "tab", "sections", arr => groupAndMap(arr, "section", "items"));
이제 결과 변수에는 원하는 그룹화된 객체 배열이 포함됩니다.
console.log(result);
위 내용은 Lodash를 사용하여 객체 배열에서 여러 키를 그룹화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!