Tulis semula tajuk sebagai: Kumpulan tatasusunan utama dan tambah medan dan subarray dalam setiap kumpulan
P粉190443691
2023-08-24 21:18:20
<p>Saya mempunyai tatasusunan berat seperti ini: </p>
<pre class="brush:php;toolbar:false;">[
{Id: 1, Name: 'Red', optionName: 'Color'},
{Id: 2, Name: 'Yellow', optionName: 'Color'},
{Id: 3, Name: 'Blue', optionName: 'Color'},
{Id: 4, Name: 'Hijau', optionName: 'Color'},
{Id: 7, Name: 'Black', optionName: 'Color'},
{Id: 8, Name: 'S', optionName: 'Size'},
{Id: 11, Name: 'M', optionName: 'Size'},
{Id: 12, Name: 'L', optionName: 'Size'},
{Id: 13, Name: 'XL', optionName: 'Size'},
{Id: 14, Nama: 'XXL', optionName: 'Saiz'}
]</pre>
<p>Saya perlu mengumpulkan mengikut <kod>optionName</code> dan mempunyai dua baris dalam tatasusunan utama, seperti ini: </p>
<pre class="brush:php;toolbar:false;">[
{
Nama: 'Warna',
Data:[{Id: 1, Nama: 'Merah'},
{Id: 2, Nama: 'Kuning'},
{Id: 3, Nama: 'Biru'},
{Id: 4, Nama: 'Hijau'},
{Id: 7, Nama: 'Hitam'}]
}, {
Nama: 'Saiz',
Data:[{Id: 8, Nama: 'S'},
{Id: 11, Nama: 'M'},
{Id: 12, Nama: 'L'},
{Id: 13, Nama: 'XL'},
{Id: 14, Nama: 'XXL'}]
}
]</pre>
<p>Bagaimana untuk melaksanakannya dalam javascript? </p>
Penyelesaian ES6 menggunakan objek Peta:
Berikut ialah coretan kod yang saya tulis untuk situasi ini. Anda boleh menambah fungsi ini pada semua tatasusunan:
Anda boleh menggunakannya seperti ini. Anda hanya lulus fungsi yang mentakrifkan cara mengumpulkan data.
Kerja Rebab
Anda boleh
{key: k, data: map[k]}
替换为{Name: k, Data: map[k]}
jika perlu.Ini juga versi ES6 yang lebih padat bagi kod di atas:
Gunakannya seperti ini: