Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengumpulkan Susunan Objek dengan Kekunci Bersarang Menggunakan Lodash dengan Cekap?

Bagaimanakah Saya Boleh Mengumpulkan Susunan Objek dengan Kekunci Bersarang Menggunakan Lodash dengan Cekap?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-07 06:13:12503semak imbas

How Can I Efficiently Group an Array of Objects by Nested Keys Using Lodash?

Mengumpulkan Tatasusunan Objek dengan Kekunci Bersarang dengan Nama Tertentu

Pertanyaan ini bertujuan untuk mengubah suai tatasusunan objek dengan mengumpulkannya berdasarkan spesifik nama kunci, menghasilkan output yang diingini dengan objek bersarang.

Untuk mencapai ini, fungsi tersuai yang dipanggil groupAndMap digunakan. Ia menggunakan gabungan _.map dan _.groupBy daripada perpustakaan Lodash. Berikut ialah pecahan cara ia berfungsi:

function groupAndMap(items, itemKey, childKey, predic){
    return _.map(_.groupBy(items,itemKey), (obj,key) => ({
        [itemKey]: key,
        [childKey]: (predic && predic(obj)) || obj
    }));
}
  • Fungsi ini mengambil empat parameter: item (tatasusunan kepada kumpulan), itemKey (kunci kepada kumpulan mengikut), childKey (nama sifat bagi objek bersarang), dan predic (fungsi predikat pilihan yang boleh digunakan untuk mengubah suai objek bersarang).
  • Ia terpakai _.groupBy pada tatasusunan item menggunakan itemKey, mengumpulkan objek ke dalam tatasusunan berdasarkan itemKeynya.
  • Menggunakan _.map, setiap objek dalam tatasusunan berkumpulan ditukar kepada objek baharu dengan dua sifat: [itemKey] dan [childKey].
  • Parameter ramalan, jika disediakan, membolehkan penyesuaian selanjutnya bagi objek bersarang. Ia digunakan pada tatasusunan objek untuk setiap itemKey sebelum memberikannya kepada sifat [childKey].

Untuk mencipta output bersarang yang diingini, fungsi ini digunakan dua kali dalam coretan kod:

var result = groupAndMap(items,"tab","sections", 
                   arr => groupAndMap(arr,"section", "items"));

Panggilan pertama mengumpulkan objek mengikut kekunci "tab", menghasilkan tatasusunan objek dengan "tab" dan "bahagian" harta benda. Panggilan zweite kemudian mengumpulkan objek dalam setiap bahagian dengan kekunci "bahagian", menghasilkan output bersarang yang dikehendaki di mana objek dikumpulkan mengikut "tab" dan kemudian mengikut "bahagian".

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengumpulkan Susunan Objek dengan Kekunci Bersarang Menggunakan Lodash dengan Cekap?. 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