Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mencari Elemen Padanan Merentasi Pelbagai Tatasusunan JavaScript?
Memandangkan pelbagai tatasusunan JavaScript nilai rentetan, cari elemen yang berlaku sama dalam semua tatasusunan. Contohnya:
<code class="javascript">var arr1 = ['apple', 'orange', 'banana', 'pear', 'fish', 'pancake', 'taco', 'pizza']; var arr2 = ['taco', 'fish', 'apple', 'pizza']; var arr3 = ['banana', 'pizza', 'fish', 'apple'];</code>
Output yang dijangkakan:
<code class="javascript">['apple', 'fish', 'pizza']</code>
Untuk mencari elemen padanan, kita boleh menggunakan gabungan kaedah Tatasusunan:
<code class="javascript">const arrays = [arr1, arr2, arr3]; const result = arrays.shift().filter((v) => { return arrays.every((a) => { return a.indexOf(v) !== -1; }); });</code>
Langkah:
Dengan menggunakan logik ini secara berulang pada setiap tatasusunan, kita boleh mencari unsur-unsur yang berlaku secara serupa dalam semua tatasusunan yang disediakan.
Pengendalian Elemen Pendua:
Penyelesaian yang disediakan mengandaikan bahawa tatasusunan tidak mengandungi unsur pendua. Jika mereka berbuat demikian, anda boleh mengubah suai kod seperti berikut:
<code class="javascript">const result = arrays.shift().reduce((res, v) => { if (res.indexOf(v) === -1 && arrays.every((a) => { return a.indexOf(v) !== -1; })) res.push(v); return res; }, []);</code>
Kod ini menggunakan .reduce() dan bukannya .filter(). Ia menyemak pendua dalam tatasusunan hasil dan hanya menambah elemen unik yang terdapat dalam setiap tatasusunan.
Bilangan Arbitrari Tatasusunan:
Penyelesaian direka bentuk untuk berfungsi dengan bilangan tatasusunan yang tidak diketahui. Dengan menggunakan arrays.shift(), kita boleh membandingkan tatasusunan pertama secara berurutan dengan tatasusunan yang tinggal sehingga semua tatasusunan telah diproses.
Atas ialah kandungan terperinci Bagaimana untuk Mencari Elemen Padanan Merentasi Pelbagai Tatasusunan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!