>웹 프론트엔드 >JS 튜토리얼 >Lodash 또는 일반 JavaScript를 사용하여 JavaScript에서 키별로 개체 배열을 그룹화하는 방법은 무엇입니까?

Lodash 또는 일반 JavaScript를 사용하여 JavaScript에서 키별로 개체 배열을 그룹화하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-19 19:15:11914검색

How to Group an Array of Objects by Key in JavaScript using Lodash or Plain JavaScript?

Javascript 및 Lodash를 사용하여 객체 배열을 키별로 그룹화

특정 키를 기반으로 객체를 배열로 그룹화하는 것은 일반적인 작업입니다. Lodash는 이러한 작업을 처리하기 위한 강력한 라이브러리를 제공하지만 일반 Javascript를 사용하여 이를 달성하는 것도 가능합니다.

다음과 같은 자동차 개체 배열을 고려하세요.

const cars = [
    {
        'make': 'audi',
        'model': 'r8',
        'year': '2012'
    }, {
        'make': 'audi',
        'model': 'rs5',
        'year': '2013'
    }, {
        'make': 'ford',
        'model': 'mustang',
        'year': '2012'
    }, {
        'make': 'ford',
        'model': 'fusion',
        'year': '2015'
    }, {
        'make': 'kia',
        'model': 'optima',
        'year': '2012'
    },
];

목표는 'make' 속성으로 그룹화된 새로운 객체 배열입니다. 일반 Javascript를 사용하면 다음 솔루션을 적용할 수 있습니다.

var result = cars.reduce(function (r, a) {
    r[a.make] = r[a.make] || [];
    r[a.make].push(a);
    return r;
}, Object.create(null));

이 코드는 Array#reduce를 활용하여 'cars' 배열을 반복합니다. 각 객체에 대해 'make'에 대한 항목이 'result' 객체에 존재하는지 확인합니다. 그렇지 않은 경우 'make'에 대한 새 배열을 만들고 현재 개체를 그 배열에 푸시합니다. 항목이 이미 존재하는 경우 해당 개체를 배열로 푸시하기만 하면 됩니다.

Lodash는 이 작업에 대한 단축키도 제공합니다.

const groupedCars = _.groupBy(cars, 'make');

_.groupBy 메서드는 배열과 속성을 사용합니다. 키는 지정된 속성의 값이고 값은 해당 속성으로 그룹화된 객체의 배열인 새 객체의 이름을 지정하고 반환합니다.

위 내용은 Lodash 또는 일반 JavaScript를 사용하여 JavaScript에서 키별로 개체 배열을 그룹화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.