배열의 효과적인 개체 그룹화
배열에는 여러 속성을 가진 복잡한 개체가 포함될 수 있으므로 특정 기준에 따라 이러한 개체를 효율적으로 그룹화해야 합니다. . Underscore.js는 편리한 그룹화 기능을 제공하지만 특정 요구 사항을 충족하지 못할 수 있습니다.
값이 분할되지 않고 병합되는 SQL과 같은 그룹화를 달성하려면 사용자 지정 접근 방식이 선호되는 경우가 많습니다. 이러한 구현 중 하나가 아래에 나와 있습니다.
var groupBy = function(xs, key) { return xs.reduce(function(rv, x) { (rv[x[key]] = rv[x[key]] || []).push(x); return rv; }, {}); };
이 함수는 배열 xs와 그룹화 키 키를 허용합니다. 배열 요소를 반복하여 결과 개체 rv에 누적합니다. 각 그룹은 키 속성의 값으로 식별됩니다.
시연하려면 다음 개체 배열을 고려하세요.
[ { Phase: "Phase 1", Step: "Step 1", Task: "Task 1", Value: "5" }, { Phase: "Phase 1", Step: "Step 1", Task: "Task 2", Value: "10" }, { Phase: "Phase 1", Step: "Step 2", Task: "Task 1", Value: "15" }, { Phase: "Phase 1", Step: "Step 2", Task: "Task 2", Value: "20" }, // ... (more objects) ]
단계별 그룹화 결과:
console.log(groupBy(array, "Phase")); // => { // "Phase 1": [ // // Objects in Phase 1 // ], // "Phase 2": [ // // Objects in Phase 2 // ] // }
단계별 그룹화 및 단계 결합 값:
console.log(groupBy(array, "Phase", "Step")); // => { // "Phase 1": { // "Step 1": [ // // Objects in Phase 1, Step 1 // ], // "Step 2": [ // // Objects in Phase 1, Step 2 // ] // }, // "Phase 2": { // // Similar object structure for Phase 2 // } // }
이 접근 방식은 개체를 그룹화하는 유연하고 효율적인 방법을 제공합니다. 배열. 사용자 정의 groupBy 기능을 구현하면 그룹화 논리를 제어할 수 있으며 더 복잡한 시나리오를 처리하도록 쉽게 확장할 수 있습니다.
위 내용은 사용자 정의 'groupBy' 함수를 사용하여 JavaScript 배열의 개체를 효율적으로 그룹화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!