Mengumpulkan Objek Bersarang mengikut Kekunci Tersuai
Untuk memudahkan pemaparan, tatasusunan objek mesti ditukar kepada objek kumpulan dengan nama kunci tertentu. Objektifnya adalah untuk mencipta output di mana objek dikumpulkan oleh kekunci yang ditetapkan ini, seperti yang dilihat di bawah:
const output = [ { tab: 'Results', sections: [ { section: '2017', items: [ { 'item that belongs here' }, { ... } ], }, }, { tab: 'Reports', sections: [ { section: 'Marketing', items: [ { ... }, { ... } ], }, }, ... ]
Pendekatan Pelaksanaan
Transformasi ini boleh dicapai dengan menggabungkan fungsi Lodash _.map dan _.groupBy.
function groupAndMap(items, itemKey, childKey, predic){ return _.map(_.groupBy(items,itemKey), (obj,key) => ({ [itemKey]: key, [childKey]: (predic && predic(obj)) || obj })); }
The groupAndMap fungsi mengambil empat parameter:
Fungsi mengumpulkan item terlebih dahulu mengikut itemKey menggunakan _.groupBy. Kemudian, ia berulang ke atas objek terkumpul dan mencipta objek baharu dengan itemKey dan childKey. Jika parameter predik disediakan, ia menggunakan predikat pada kumpulan bersarang.
Contoh Penggunaan
Untuk menggunakan fungsi ini untuk mengumpulkan objek yang diberikan, panggilnya seperti berikut :
var result = groupAndMap(items,"tab","sections", arr => groupAndMap(arr,"section", "items"));
Ini akan mengumpulkan item mengikut kekunci "tab" dan "bahagian", menghasilkan yang diingini keluaran.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengumpul Objek Bersarang dengan Kecekapan dengan Kekunci Tersuai Menggunakan Lodash?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!