Bagaimana untuk Mencari Padanan dalam Tatasusunan Merentas Pelbagai Tatasusunan dalam Javascript?

Barbara Streisand
Lepaskan: 2024-10-31 01:58:29
asal
710 orang telah melayarinya

How to Find Matches in Arrays Across Multiple Arrays in Javascript?

Mencari Padanan dalam Tatasusunan merentas Tatasusunan Berbeza

Pertimbangkan senario di mana anda mempunyai berbilang tatasusunan JavaScript dengan nilai rentetan, dan anda perlu mencari dan ekstrak hanya padanan yang sama dalam setiap tatasusunan.

Bayangkan anda mempunyai tatasusunan berikut:

var arr1 = ['apple', 'orange', 'banana', 'pear', 'fish', 'pancake', 'taco', 'pizza'];
var arr2 = ['taco', 'fish', 'apple', 'pizza'];
var arr3 = ['banana', 'pizza', 'fish', 'apple'];
Salin selepas log masuk

Matlamat anda adalah untuk mendapatkan tatasusunan yang mengandungi hanya padanan yang muncul dalam ketiga-tiga tatasusunan, iaitu:

['apple', 'fish', 'pizza']
Salin selepas log masuk

Tugas ini boleh dicapai tanpa menggunakan perpustakaan luaran. Satu pendekatan melibatkan penggunaan kaedah filter() dalam kombinasi dengan every().

var result = arrays.shift().filter(function(v) {
    return arrays.every(function(a) {
        return a.indexOf(v) !== -1;
    });
});
Salin selepas log masuk

Dalam penyelesaian ini:

  • shift() mengalih keluar tatasusunan pertama daripada koleksi tatasusunan.
  • filter() mencipta tatasusunan baharu yang mengandungi hanya elemen yang melepasi keadaan yang ditentukan.
  • setiap() menyemak sama ada semua elemen dalam koleksi tatasusunan melepasi syarat.

Mengisih tatasusunan luar ( tatasusunan) berdasarkan panjang boleh mengoptimumkan prestasi.

arrays.sort(function(a, b) {
    return a.length - b.length;
});
Salin selepas log masuk

Selain itu, jika pendua terdapat dalam tatasusunan, anda boleh menggunakan kaedah reduce() dan bukannya filter().

var result = arrays.shift().reduce(function(res, v) {
    if (res.indexOf(v) === -1 && arrays.every(function(a) {
        return a.indexOf(v) !== -1;
    })) res.push(v);
    return res;
}, []);
Salin selepas log masuk

Dengan menggunakan kaedah ini, anda boleh mencari padanan dalam tatasusunan dengan berkesan merentas berbilang tatasusunan, walaupun ia mengandungi panjang atau pendua yang tidak diketahui.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Padanan dalam Tatasusunan Merentas Pelbagai Tatasusunan dalam Javascript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!