공통 속성을 기반으로 객체를 그룹화하는 것은 데이터 처리에서 일반적인 작업입니다. 이 스니펫은 바닐라 JavaScript 접근 방식을 사용하여 배열의 개체를 그룹화하는 효율적인 솔루션을 제공합니다.
Underscore.js는 groupBy 기능을 제공하지만 구현은 그렇지 않을 수 있습니다. 별도의 그룹이 아닌 "병합된" 결과가 필요한 경우에 적합합니다.
다음 스크립트는 객체 배열에서 작동하는 groupBy 함수를 정의합니다.
var groupBy = function(xs, key) { return xs.reduce(function(rv, x) { (rv[x[key]] = rv[x[key]] || []).push(x); return rv; }, {}); };
"단계"별로 객체를 그룹화하려면:
const data = [ { Phase: "Phase 1", Step: "Step 1", Task: "Task 1", Value: "5" }, ... ]; const groupedByPhase = groupBy(data, 'Phase');
groupedByPhase는 포함:
{ "Phase 1": [ { Phase: "Phase 1", Step: "Step 1", Task: "Task 1", Value: "5" }, ... ], "Phase 2": [ { Phase: "Phase 2", Step: "Step 1", Task: "Task 1", Value: "25" }, ... ] }
"Step"으로 추가 그룹화:
const groupedByPhaseStep = _(groupedByPhase).values().map(phase => { return groupBy(phase, 'Step'); }).value();
groupedByPhaseStep에는 다음이 포함됩니다:
[ { "Phase": "Phase 1", "Step": "Step 1", "Value": 15 }, ... ]
위 내용은 바닐라 접근 방식을 사용하여 JavaScript에서 개체 배열을 효율적으로 그룹화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!