Array Methods "Dewa"
Lupakan for-loop manual untuk mengolah data. JavaScript punya metode bawaan yang lebih deklaratif dan rapi.
Mari kita pakai contoh data Array of Objects (format data paling umum dari API/Database):
const products = [
{ id: 1, name: "Laptop", price: 10000, category: "Elektronik" },
{ id: 2, name: "Mouse", price: 200, category: "Elektronik" },
{ id: 3, name: "Baju", price: 100, category: "Fashion" },
];
1. map() - Mengubah Bentuk
Digunakan untuk mengubah setiap elemen array menjadi bentuk baru.
- Hasil: Array baru dengan jumlah yang SAMA.
- Contoh: Mengambil hanya nama produknya saja.
const productNames = products.map((item) => {
return item.name;
});
console.log(productNames);
// Output: ["Laptop", "Mouse", "Baju"]
Di React
map adalah cara standar untuk mengubah data menjadi elemen HTML (Looping Component).
2. filter() - Menyaring Data
Digunakan untuk mengambil elemen yang memenuhi syarat saja.
- Hasil: Array baru (bisa lebih sedikit atau kosong).
- Contoh: Ambil barang yang harganya di bawah 1000.
const cheapItems = products.filter((item) => {
return item.price < 1000;
});
console.log(cheapItems);
// Output: [{Mouse...}, {Baju...}] (Laptop hilang karena mahal)
3. find() - Mencari Satu Data
Digunakan untuk mencari satu elemen pertama yang cocok.
- Hasil: Sebuah Object (bukan Array) atau
undefinedjika tidak ketemu. - Contoh: Cari barang dengan ID 2.
const specificItem = products.find((item) => {
return item.id === 2;
});
console.log(specificItem);
// Output: { id: 2, name: "Mouse", ... }
4. reduce() - Merangkum Data (Advanced)
Digunakan untuk menghitung total atau menggabungkan seluruh array menjadi satu nilai.
// Menghitung Total Harga Belanja
const totalPrice = products.reduce((total, item) => {
return total + item.price;
}, 0); // 0 adalah nilai awal total
console.log(totalPrice); // 10300