Rumah > Artikel > hujung hadapan web > Bagaimana untuk Menapis Tatasusunan Objek Berdasarkan Sifat Padanan dalam Tatasusunan Lain?
Menapis Tatasusunan Objek Menggunakan Tatasusunan Objek Lain
Tugas di tangan ialah menapis tatasusunan objek (myArray) berdasarkan tatasusunan kedua objek (myFilter) untuk mengembalikan hanya objek tersebut dalam myArray yang mana id pengguna dan sifat unjurannya sepadan dengan yang ada dalam myFilter.
Penyelesaian
Untuk mencapai ini, kami menggunakan gabungan penapis dan beberapa kaedah. Kaedah penapis melelakan setiap elemen dalam myArray dan mengembalikan tatasusunan baharu yang mengandungi hanya elemen yang melepasi syarat tertentu. Dalam kes ini, syarat ini dipenuhi jika userid dan projectid elemen sepadan dengan mana-mana pasangan userid dan projectid dalam myFilter.
Kaedah beberapa digunakan dalam keadaan penapis untuk menentukan sama ada mana-mana elemen dalam myFilter bertemu kriteria yang ditetapkan. Syarat ini menyemak sama ada id pengguna dan sifat projekid elemen myFilter semasa adalah sama dengan elemen myArray semasa. Jika padanan ditemui, beberapa kaedah akan kembali benar, menunjukkan bahawa syarat dipenuhi dan elemen harus disertakan dalam tatasusunan yang ditapis.
Contoh Kod
<code class="js">const myArray = [ { userid: "100", projectid: "10", rowid: "0" }, { userid: "101", projectid: "11", rowid: "1"}, { userid: "102", projectid: "12", rowid: "2" }, { userid: "103", projectid: "13", rowid: "3" }, { userid: "101", projectid: "10", rowid: "4" } ]; const myFilter = [ { userid: "101", projectid: "11" }, { userid: "102", projectid: "12" }, { userid: "103", projectid: "11"} ]; const myArrayFiltered = myArray.filter((el) => { return myFilter.some((f) => { return f.userid === el.userid && f.projectid === el.projectid; }); }); console.log(myArrayFiltered);</code>
Output
[ { userid: "101", projectid: "11", rowid: "1" }, { userid: "102", projectid: "12", rowid: "2" } ]
Atas ialah kandungan terperinci Bagaimana untuk Menapis Tatasusunan Objek Berdasarkan Sifat Padanan dalam Tatasusunan Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!