Masalah:
Memandangkan pelbagai objek, tugasnya adalah untuk menyusun semula mereka ke dalam format yang dioptimumkan untuk pemaparan dengan mencipta struktur bersarang berdasarkan kunci tertentu nilai.
Contoh:
Susun Input:
[ { tab: 'Results', section: '2017', title: 'Full year Results', description: 'Something here', }, { tab: 'Results', section: '2017', title: 'Half year Results', description: 'Something here', }, { tab: 'Reports', section: 'Marketing', title: 'First Report', description: 'Something here', } ]
Output yang Diingini:
[ { tab: 'Results', sections: [ { section: '2017', items: [ { 'item that belongs here' }, { ... } ] } ] }, { tab: 'Reports', sections: [ { section: 'Marketing', items: [ { ... }, { ... } ] } ] } ]
Penyelesaian :
Transformasi ini boleh dicapai menggunakan gabungan 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 })); }
Untuk menyarangkan data seperti yang dikehendaki, gunakan groupAndMap secara rekursif.
const output = groupAndMap(items, "tab", "sections", arr => groupAndMap(arr, "section", "items") );
Penyelesaian ini mencapai objektif mengumpulkan dan menyarangkan tatasusunan objek berdasarkan nilai kunci tertentu.
Atas ialah kandungan terperinci Bagaimana untuk Menyarangkan Tatasusunan Objek Berdasarkan Nilai Utama untuk Paparan Dioptimumkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!