>웹 프론트엔드 >JS 튜토리얼 >특정 속성별로 객체 배열을 그룹화하고 다른 속성을 배열로 통합하려면 어떻게 해야 합니까?

특정 속성별로 객체 배열을 그룹화하고 다른 속성을 배열로 통합하려면 어떻게 해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-15 12:08:14466검색

How can I group an array of objects by a specific property and consolidate other properties into arrays?

객체 속성별로 배열 항목 그룹화

그룹 및 색상 속성이 있는 객체 배열이 주어지면 목표는 그룹 값을 기준으로 항목을 그룹화하여 색상을 통합하는 것입니다. 각 그룹의 값입니다.

문제

제공된 배열은 다음과 같습니다. 이:

myArray = [
  {group: "one", color: "red"},
  {group: "two", color: "blue"},
  {group: "one", color: "green"},
  {group: "one", color: "black"}
]

원하는 출력은 다음과 같은 배열입니다.

myArray = [
  {group: "one", color: ["red", "green", "black"]},
  {group: "two", color: ["blue"]}
]

솔루션

  1. 그룹 이름과 값의 맵 생성 : 그룹 이름에서 배열로의 매핑을 생성하려면 축소() 메서드를 사용하세요. colors.
  2. 원하는 형식으로 변환: 지도의 키를 반복하고 그룹 속성이 키로 설정되고 색상 속성이 설정된 각 그룹에 대한 객체를 생성하여 새 배열을 만듭니다. 해당 키와 관련된 색상 배열로 변환합니다.

아래는 JavaScript입니다. 구현:

var myArray = [
    {group: "one", color: "red"},
    {group: "two", color: "blue"},
    {group: "one", color: "green"},
    {group: "one", color: "black"}
];

var group_to_values = myArray.reduce(function (obj, item) {
    obj[item.group] = obj[item.group] || [];
    obj[item.group].push(item.color);
    return obj;
}, {});

var groups = Object.keys(group_to_values).map(function (key) {
    return {group: key, color: group_to_values[key]};
});

console.log("groups:");
console.log(JSON.stringify(groups, null, 4));

이 코드는 그룹 속성별로 항목을 그룹화하고 해당 색상 값을 배열로 통합하여 원하는 출력을 생성합니다.

위 내용은 특정 속성별로 객체 배열을 그룹화하고 다른 속성을 배열로 통합하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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