Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Menapis Tatasusunan Objek Berdasarkan Sifat Padanan dalam Tatasusunan Lain?

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

Linda Hamilton
Linda Hamiltonasal
2024-11-02 08:50:02224semak imbas

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>

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!

Kenyataan:
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