Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menghimpunkan Objek dalam Tatasusunan JavaScript dengan Kunci Dikongsi?

Bagaimanakah Saya Boleh Menghimpunkan Objek dalam Tatasusunan JavaScript dengan Kunci Dikongsi?

Barbara Streisand
Barbara Streisandasal
2024-12-26 16:40:10656semak imbas

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

Mengumpulkan Objek dalam Tatasusunan mengikut Kekunci

Dalam pengaturcaraan, selalunya perlu untuk mengumpulkan objek dalam tatasusunan berdasarkan kunci yang dikongsi. Pertimbangkan tatasusunan objek kereta berikut sebagai contoh:

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'
    },
];

Matlamatnya ialah untuk mencipta tatasusunan baharu di mana objek kereta dikumpulkan mengikut jenama. Menggunakan JavaScript vanila, satu pendekatan ialah menggunakan kaedah Array#reduce bersama-sama dengan objek:

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);

Kod ini berulang melalui tatasusunan kereta dan menyemak sama ada make semasa wujud sebagai kunci dalam objek hasil. Jika tidak, ia menambah make sebagai kunci dan memulakan tatasusunan kosong. Ia kemudian menolak objek kereta semasa ke dalam tatasusunan yang sepadan, mengumpulkan objek secara berkesan mengikut pembuatannya.

Objek hasil yang terhasil akan distrukturkan seperti berikut:

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

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

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

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghimpunkan Objek dalam Tatasusunan JavaScript dengan Kunci Dikongsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn