cara mengelompokan objek menurut key yang sama di javascript – halo.. di kesempatan kali ini, saya akan memberikan panduan singkat mengenai cara grouping object menurut key. Sebelum ke tutorialnya, saya akan menjelaskan mengenai kegunaan grouping ini.
Apa itu grouping by obeject key?
Hakekatnya, ini yakni teknik bagi mengubah arsitektur object menjadi lebih gampang dimengerti, lebih singkat, dan lebih gampang diimplementasikan di client. Diantara contohnya yakni seperti ini.
Misal, kita mempunyai object
var mobil = [
{
'merk': 'audi',
'year': '2012'
},
{
'merk': 'audi',
'tahun': '2013'
},
{
'merk': 'ford',
'tahun': '2012'
},
{
'merk': 'ford',
'tahun': '2015'
},
{
'merk': 'kia',
'tahun': '2012'
},
]
Objek tersebut terlihat terpisah satu sama lain. Misal, kita akan grouping objek tersebut menurut key “merk”. Jadi, mobil yang merknya sama akan tergabung pada sebuah objek yang sama. Hasilnya akan seperti ini
var mobil = {
'audi': [
{
'tahun': '2012'
},
{
'tahun': '2013'
},
],
'ford': [
{
'tahun': '2012'
},
{
'tahun': '2015'
}
],
'kia': [
{
'tahun': '2012'
}
]
}
Ini membangun object menjadi terstruktur, gampang dilihat, dan diimplementasikan. Oke, jadi bagaimana caranya?
Saya telah mempunyai kode function ajaib bagi grouping object menurut key. Berikut ini kodenya
function groupBy(xs, f) {
return xs.reduce((r, v, i, a, k = f(v)) => ((r[k] || (r[k] = [])).push(v), r), {});
}
Contoh Implementasi Kode
var mobil = [
{
'merk': 'audi',
'year': '2012'
},
{
'merk': 'audi',
'tahun': '2013'
},
{
'merk': 'ford',
'tahun': '2012'
},
{
'merk': 'ford',
'tahun': '2015'
},
{
'merk': 'kia',
'tahun': '2012'
},
]
var result = groupBy(mobil, (m) => m.merk)
Result Grouping By Merk:
{
'audi': [
{
'tahun': '2012'
},
{
'tahun': '2013'
},
],
'ford': [
{
'tahun': '2012'
},
{
'tahun': '2015'
}
],
'kia': [
{
'tahun': '2012'
}
]
}
Oke, sekianlah tutorial kali ini. Semoga bermanfaat! Terima Kasih!
(Visited 8 times, 1 visits today)