Cari Elemen di Array dengan find() dan findIndex()

Cari Elemen di Array dengan find() dan findIndex()
Photo by Markus Spiske / Unsplash

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() atau findIndex() kalau butuh semua elemen yang cocok, lebih baik pakai filter().

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() mengembalikan undefined, sedangkan findIndex() 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!