Cari Elemen di Array dengan find() dan findIndex()
Kalau kamu sering kerja dengan array di JavaScript, pasti ada saatnya butuh mencari elemen tertentu dalam array. Nah, di sinilah find()
dan findIndex()
jadi penyelamat! 🎯
find()
digunakan untuk mencari elemen pertama yang memenuhi kondisi tertentu.findIndex()
digunakan untuk mencari indeks elemen pertama yang memenuhi kondisi.
Dengan kedua metode ini, kamu bisa menghindari loop manual yang ribet dan bikin kode jadi lebih bersih. Yuk, kita kupas satu per satu! 🚀
Apa Itu find()
?
Metode find()
akan mencari elemen pertama dalam array yang memenuhi kondisi yang diberikan dalam callback function.
Sintaks Dasar:
array.find(function(element, index, array) {
return kondisi;
});
Parameter yang Bisa Dipakai:
element
→ Elemen yang sedang diperiksa dalam array. (Wajib)index
→ Indeks elemen yang sedang diperiksa. (Opsional)array
→ Array yang sedang diperiksa. (Opsional)
Return Value:
- Mengembalikan elemen pertama yang memenuhi kondisi.
- Kalau tidak ada elemen yang cocok, maka hasilnya
undefined
.
Contoh Penggunaan find()
Misalnya, kita punya daftar angka dan mau cari angka pertama yang lebih besar dari 10.
let angka = [5, 8, 15, 20, 25];
let hasil = angka.find(num => num > 10);
console.log(hasil);
Output:
15
Karena angka 15 adalah angka pertama yang lebih besar dari 10, maka find()
langsung mengembalikannya.
Kalau nggak ada yang memenuhi:
let angka = [2, 4, 8];
let hasil = angka.find(num => num > 10);
console.log(hasil);
Output:
undefined
Karena nggak ada angka lebih dari 10, hasilnya jadi undefined
.
Contoh find()
dengan Array Objek
Kalau kita punya daftar user dan mau cari user yang punya role "admin", kita bisa pakai find()
.
let users = [
{ nama: "Andi", role: "user" },
{ nama: "Budi", role: "admin" },
{ nama: "Citra", role: "user" }
];
let admin = users.find(user => user.role === "admin");
console.log(admin);
Output:
{ nama: "Budi", role: "admin" }
Karena Budi adalah user pertama yang punya role "admin"
, maka find()
mengembalikannya.
Apa Itu findIndex()
?
Kalau find()
mengembalikan elemen pertama yang cocok, findIndex()
akan mengembalikan indeks dari elemen pertama yang memenuhi kondisi.
Sintaks Dasar:
array.findIndex(function(element, index, array) {
return kondisi;
});
Return Value:
- Mengembalikan indeks elemen pertama yang memenuhi kondisi.
- Kalau tidak ada elemen yang cocok, hasilnya
-1
.
Contoh Penggunaan findIndex()
Misalnya, kita punya daftar angka dan mau tahu indeks angka pertama yang lebih dari 10.
let angka = [5, 8, 15, 20, 25];
let index = angka.findIndex(num => num > 10);
console.log(index);
Output:
2
Karena angka 15 ada di indeks 2, maka findIndex()
mengembalikan 2.
Kalau nggak ada yang cocok:
let angka = [2, 4, 8];
let index = angka.findIndex(num => num > 10);
console.log(index);
Output:
-1
Karena nggak ada angka lebih dari 10, maka hasilnya -1
.
Contoh findIndex()
dengan Array Objek
Misalnya kita punya daftar produk dan mau cari indeks produk pertama yang harganya lebih dari Rp100.000.
let produk = [
{ nama: "Mouse", harga: 50000 },
{ nama: "Keyboard", harga: 150000 },
{ nama: "Monitor", harga: 2000000 }
];
let index = produk.findIndex(item => item.harga > 100000);
console.log(index);
Output:
1
Karena Keyboard adalah produk pertama dengan harga lebih dari Rp100.000, maka indeksnya 1.
Perbedaan find()
vs findIndex()
Metode | Return Value |
---|---|
find() |
Elemen pertama yang memenuhi kondisi |
findIndex() |
Indeks dari elemen pertama yang memenuhi kondisi |
Jadi, pakai find()
kalau butuh elemennya, dan pakai findIndex()
kalau butuh indeksnya.
Kapan Sebaiknya Pakai find()
atau findIndex()
?
- Pakai
find()
kalau butuh nilai elemen yang cocok. - Pakai
findIndex()
kalau butuh tahu posisi indeks elemen yang cocok. - Jangan pakai
find()
ataufindIndex()
kalau butuh semua elemen yang cocok, lebih baik pakaifilter()
.
Kesimpulan
find()
dipakai buat mencari elemen pertama dalam array yang memenuhi kondisi.findIndex()
dipakai buat mencari indeks elemen pertama dalam array yang memenuhi kondisi.- Kalau nggak ada yang cocok,
find()
mengembalikanundefined
, sedangkanfindIndex()
mengembalikan-1
. - Cocok buat pencarian cepat dalam array tanpa perlu loop manual.
Jadi, kalau butuh cari elemen dalam array, gunakan find()
atau findIndex()
biar lebih efisien dan rapi!