Cara Cepat Membagi Array di JavaScript dengan `chunk`
1
min read .
Updated on
Kadang-kadang di proyek JavaScript, saya butuh memecah array besar jadi potongan-potongan kecil—entah buat manajemen UI atau pemrosesan data. Meski JavaScript punya banyak metode bawaan, nggak ada yang langsung bilang: “Hei, saya bisa nge-chunk
array buat kamu.” Gini deh, kita bisa tambahkan sendiri.
Menambahkan Metode chunk
kita bisa extend Array.prototype
pakai Object.defineProperty
biar semua array bisa pakai chunk
:
Object.defineProperty(Array.prototype, 'chunk', {
value: function(size) {
let arr = this;
return [].concat.apply([],
arr.map((el, i) => i % size ? [] : [arr.slice(i, i + size)])
);
}
});
Cara Kerjanya
this
→ array yang kita panggilchunk
.arr.map
+i % size
→ bikin chunk baru tiapsize
elemen.[].concat.apply([], …)
→ merapikan semua chunk jadi satu array.
Contoh Penggunaan
let numbers = [1,2,3,4,5,6,7,8,9];
console.log(numbers.chunk(3));
// Output: [[1,2,3],[4,5,6],[7,8,9]]
Sekarang tinggal panggil .chunk(size)
di array mana pun.
Catatan & Tips
- Modifikasi
Array.prototype
itu powerful tapi harus hati-hati. Bisa bentrok sama library lain atau metode baru JS. - Gini deh, kalau cuma butuh sesekali, bisa juga bikin fungsi biasa tanpa extend prototipe:
function chunk(arr, size) {
return arr.reduce((res, _, i) => {
if(i % size === 0) res.push(arr.slice(i, i + size));
return res;
}, []);
}
Kesimpulan
Pada akhirnya, metode chunk
bikin hidup lebih gampang kalau kerja sama array besar. Bisa dipakai di UI grid, batch request API, atau manipulasi data. Snippet di atas siap pakai, jadi tinggal copy-paste dan langsung eksperimen.