Memudahkan Tatasusunan Objek Berdasarkan Berbilang Keadaan Penapis dalam JavaScript
Soalan:
Bagaimana bolehkah saya memudahkan tatasusunan objek berdasarkan berbilang keadaan penapis dalam JavaScript? Sebagai contoh, dengan tatasusunan berikut:
var users = [ { name: 'John', email: '[email protected]', age: 25, address: 'USA' }, { name: 'Tom', email: '[email protected]', age: 35, address: 'England' }, { name: 'Mark', email: '[email protected]', age: 28, address: 'England' } ];
Dan objek penapis:
var filter = { address: 'England', name: 'Mark' };
Saya mahu menapis semua pengguna mengikut alamat dan nama. Pada masa ini, fungsi saya menambah semua pengguna dengan alamat yang sepadan dalam lelaran pertama dan hanya pengguna terakhir dengan nama yang sepadan dalam lelaran kedua. Walau bagaimanapun, saya perlu menapis mengikut kedua-dua keadaan secara serentak.
Jawapan:
Untuk menapis tatasusunan objek berdasarkan berbilang keadaan, anda boleh menggunakan pendekatan berikut:
users = users.filter(function(item) { for (var key in filter) { if (item[key] === undefined || item[key] != filter[key]) return false; } return true; });
Kod ini berulang melalui kedua-dua tatasusunan objek dan objek penapis, memastikan setiap objek dalam tatasusunan sepadan dengan semua syarat yang dinyatakan dalam penapis. Perbandingan item[kunci] dan [kunci] penapis menyemak sama ada nilai kunci sifat dalam item objek sepadan dengan nilai yang sepadan dalam objek penapis. Jika mana-mana syarat gagal, fungsi penapis mengembalikan palsu, tidak termasuk objek itu daripada hasil yang ditapis. Jika tidak, ia kembali benar, menunjukkan bahawa objek memenuhi semua syarat penapis.
Dengan menggunakan pendekatan ini, anda boleh menapis tatasusunan objek berdasarkan berbilang kriteria dengan berkesan, memastikan hanya objek yang memenuhi semua syarat disertakan dalam keputusan.
Atas ialah kandungan terperinci Bagaimana untuk Menapis Susunan Objek mengikut Pelbagai Syarat dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!