首頁 >web前端 >js教程 >如何透過共用金鑰對 JavaScript 陣列中的物件進行分組?

如何透過共用金鑰對 JavaScript 陣列中的物件進行分組?

Barbara Streisand
Barbara Streisand原創
2024-12-26 16:40:10651瀏覽

How Can I Group Objects in a JavaScript Array by a Shared Key?

按鍵將陣列中的物件分組

在程式設計中,經常需要根據共享鍵將陣列中的物件分組。以以下汽車物件陣列為例:

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,一種方法是使用 Array#reduce 方法和一個物件:

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

console.log(result);

此程式碼迭代 cars 陣列並檢查當前 make 是否作為結果物件中的鍵存在。如果沒有,它將添加 make 作為鍵並初始化空數組。然後,它將當前汽車物件推入相應的數組,並按品牌對物件進行有效分組。

產生的結果物件的結構如下:

{
    'audi': [
        {
            'model': 'r8',
            'year': '2012'
        },
        {
            'model': 'rs5',
            'year': '2013'
        },
    ],

    'ford': [
        {
            'model': 'mustang',
            'year': '2012'
        },
        {
            'model': 'fusion',
            'year': '2015'
        }
    ],

    'kia': [
        {
            'model': 'optima',
            'year': '2012'
        }
    ]
}

以上是如何透過共用金鑰對 JavaScript 陣列中的物件進行分組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn