Bagaimana untuk Menapis Tatasusunan Objek Berdasarkan Sifat Padanan dalam Tatasusunan Lain?

Linda Hamilton
Lepaskan: 2024-11-02 08:50:02
asal
160 orang telah melayarinya

How to Filter an Array of Objects Based on Matching Properties in Another Array?

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>
Salin selepas log masuk

Output

[
  { userid: "101", projectid: "11", rowid: "1" },
  { userid: "102", projectid: "12", rowid: "2" }
]
Salin selepas log masuk

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!

sumber:php.cn
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!