Pencarian dalam array objek dapat dilakukan dalam Javascript menggunakan loop, Array. find() atau Larik. metode findIndex()
Metode 1 — Menggunakan Loop
Anda dapat melakukan iterasi melalui array menggunakan loop for .
var __POSTS = [ { id: 1, title: 'Apple', description: 'Description of post 1' }, { id: 2, title: 'Orange', description: 'Description of post 2' }, { id: 3, title: 'Guava', description: 'Description of post 3' }, { id: 4, title: 'Banana', description: 'Description of post 4' } ]; // Search for post with title == "Guava" var __FOUND = -1; for(var i=0; i<__POSTS.length; i++) { if(__POSTS[i].title == 'Guava') { // __FOUND is set to the index of the element __FOUND = i; break; } } // On success __FOUND will contain the index of the element // On failure it will contain -1 console.log(__FOUND); // 2Metode 2 — Menggunakan Array. Temukan()
Larik . metode find() mengambil fungsi panggilan balik sebagai parameter dan mengeksekusi fungsi itu satu kali untuk setiap elemen yang ada dalam larik, hingga menemukan fungsi di mana fungsi mengembalikan nilai sebenarnya.
Jika elemen ditemukan, ia mengembalikan nilai elemen, jika tidak undefined dikembalikan.
var __POSTS = [ { id: 1, title: 'Apple', description: 'Description of post 1' }, { id: 2, title: 'Orange', description: 'Description of post 2' }, { id: 3, title: 'Guava', description: 'Description of post 3' }, { id: 4, title: 'Banana', description: 'Description of post 4' } ]; var __FOUND = __POSTS.find(function(post, index) { if(post.title == 'Guava') return true; }); // On success __FOUND will contain the complete element (an object) // On failure it will contain undefined console.log(__FOUND); // { id: 3, title: 'Guava', description: 'Description of post 3' } _Nilai pengembalian mungkin terdengar sedikit membingungkan. Teori mengatakan bahwa ia mengembalikan elemen sedangkan dalam kode nilai sebenarnya dikembalikan pada kesuksesan
Alasannya adalah nilai sebenarnya digunakan secara internal. Nilai sebenarnya menunjukkan bahwa kecocokan telah ditemukan dan tidak perlu melangkah lebih jauh ke elemen berikutnya dalam larik. Saat mendapatkan nilai hasil yang benar dari fungsi panggilan balik, find() mengembalikan nilai elemen tersebut dalam larik (objek dalam kasus ini).
Namun akan lebih baik jika nilai pengembalian hanya berupa indeks dari elemen yang cocok daripada seluruh elemen. Untuk Array. findIndex() digunakan.
Metode 3 — Menggunakan Array. findIndex()
Larik. findIndex() mirip dengan Array. find() tetapi mengembalikan indeks elemen yang cocok.
Jika elemen tidak ada maka -1 dikembalikan.
var __POSTS = [ { id: 1, title: 'Apple', description: 'Description of post 1' }, { id: 2, title: 'Orange', description: 'Description of post 2' }, { id: 3, title: 'Guava', description: 'Description of post 3' }, { id: 4, title: 'Banana', description: 'Description of post 4' } ]; var __FOUND = __POSTS.findIndex(function(post, index) { if(post.title == 'Guava') return true; }); // On success __FOUND will contain the index of the element // On failure it will contain -1 console.log(__FOUND); // 2Contoh 1
Temukan nilai elemen pertama dengan nilai lebih dari 18
umur const = [3, 10, 18, 20];
fungsi checkAge(usia) {
usia kembali> 18;
}
fungsi myFunction() {
dokumen. getElementById("demo"). innerHTML = usia. temukan(periksaUsia);
}
Definisi dan Penggunaan
Metode find()_ mengembalikan nilai elemen pertama yang lulus ujian
Metode find()_ mengeksekusi fungsi untuk setiap elemen array
Metode find() mengembalikan undefined jika tidak ada elemen yang ditemukan
Metode find()_ tidak menjalankan fungsi untuk elemen kosong
Metode find()_ tidak mengubah array asli
Sintaksis
Himpunan. temukan(fungsi(Nilaisaat ini, indeks, arr),Nilaiini)
Parameter
fungsi() DiperlukanFungsi untuk dijalankan untuk setiap elemen array. CurrentValueRequired
Nilai elemen saat ini. indexOptional
Indeks elemen saat ini. arrOptional
Array dari elemen saat ini. thisValueOptional. Bawaan undefined
Nilai yang diteruskan ke fungsi sebagai nilai this nya
Nilai Pengembalian
TypeDescriptionA value Nilai elemen pertama yang lulus ujiJika tidak, ia mengembalikan undefined
Contoh 2
Temukan nilai elemen pertama yang memiliki nilai di atas angka tertentu
Cobalah
Cobalah sendiri "Dukungan Peramban
find() adalah fitur ECMAScript6 (ES6).
ES6 (JavaScript 2015) didukung di semua browser modern
ChromeEdgeFirefoxSafariOperaYaYaYaYaYafind() tidak didukung di Internet Explorer 11 (atau lebih lama)