Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Apakah perbezaan antara cari dan penapis dalam es6
Perbezaan antara cari dan penapis dalam es6: 1. Apabila mencari kandungan yang layak dalam tatasusunan tanpa mengubah tatasusunan, hasil yang dikembalikan oleh kaedah cari ialah objek, dan hasil yang dikembalikan oleh kaedah penapis ialah tatasusunan; 2. Jika tiada nilai yang memenuhi fungsi ujian, kaedah cari mengembalikan tidak ditentukan, dan kaedah penapis mengembalikan tatasusunan kosong.
Persekitaran pengendalian tutorial ini: sistem Windows 10, ECMAScript versi 6.0, komputer Dell G3.
1 Kedua-dua find dan penapis adalah kaedah yang tidak mengubah tatasusunan asal. Kedua-duanya mencari kandungan yang memenuhi syarat dalam tatasusunan tanpa menukar tatasusunan, perbezaannya ialah find mengembalikan objek, dan penapis mengembalikan tatasusunan.
Contohnya adalah seperti berikut:
const list = [{'name':'1',index:1},{'name':'2'},{'name':'1'}] let list2 = list.find(i=>i.name==='1') let list3 = list.filter(i=>i.name==='1') console.log(list); [ { name: '1', index: 1 }, { name: '2' }, { name: '1' } ] console.log(list2); { name: '1', index: 1 } console.log(list3);[ { name: '1', index: 1 }, { name: '1' } ]
cari hanya mencari hasil pertama yang memenuhi syarat Dalam contoh, ia secara langsung mengembalikan objek dan bukannya tatasusunan! , dan penapis mengembalikan semua hasil sebagai tatasusunan.
Nota: selepas find() menjumpai elemen pertama, ia tidak akan merentasi elemen berikut, jadi jika terdapat dua elemen yang sama dalam tatasusunan, ia hanya akan mencari elemen pertama, dan yang kedua akan Ia tidak akan dilalui lagi.
2. Ringkasnya, kecekapan pertanyaan cari adalah lebih tinggi, jadi jika data dalam tatasusunan adalah unik, sebaiknya gunakan find
find()
Kaedah ES6 find() mengembalikan nilai elemen pertama yang melepasi fungsi ujian. Jika tiada nilai yang memenuhi fungsi ujian, undefined dikembalikan.
Sintaks
Fungsi anak panah yang digunakan dalam sintaks berikut.
find((element) => { /* ... */ } ) find((element, index) => { /* ... */ } ) find((element, index, array) => { /* ... */ } )
filter() Kaedah
filter() mencipta tatasusunan baharu yang mengandungi semua elemen yang melepasi fungsi ujian. Jika tiada unsur memenuhi fungsi ujian, tatasusunan kosong dikembalikan.
Sintaks
filter((element) => { /* ... */ } ) filter((element, index) => { /* ... */ } ) filter((element, index, array) => { /* ... */ } )
Mata biasa
Fungsi tertib lebih tinggi: Kedua-dua fungsi ialah fungsi tertib lebih tinggi.
Perbezaan
1. Kembalikan elemen pertama melalui fungsi ujian
cari().
filter() mengembalikan tatasusunan baharu yang mengandungi semua elemen yang melepasi fungsi ujian.
2. Jika tiada nilai yang memenuhi fungsi ujian
find() mengembalikan tidak ditentukan;
filter() mengembalikan tatasusunan kosong; :
tutorial video javascriptAtas ialah kandungan terperinci Apakah perbezaan antara cari dan penapis dalam es6. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!