Rumah >hujung hadapan web >tutorial js >Bagaimana Menapis Tatasusunan Bersarang dalam Objek Berdasarkan Nilai Tertentu?

Bagaimana Menapis Tatasusunan Bersarang dalam Objek Berdasarkan Nilai Tertentu?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-29 10:14:29325semak imbas

How to Filter Nested Arrays in Objects Based on a Specific Value?

Menapis Tatasusunan Objek dengan Tatasusunan Berdasarkan Nilai Bersarang

Anda cuba menapis tatasusunan objek berdasarkan nilai bersarang di dalamnya objek. Matlamatnya ialah untuk mencipta tatasusunan baharu yang merangkumi hanya objek dengan nilai khusus untuk sifat bersarang.

Untuk mencapai ini, anda telah menggunakan formula berikut:

let filteredArray = arrayOfElements.filter((element) => element.subElements.some((subElement) => subElement.surname === 1));

Formula ini menapis objek daripada tatasusunan asal yang mempunyai sekurang-kurangnya satu sub-elemen dengan sifat nama keluarga bersamaan dengan 1. Walau bagaimanapun, output tidak seperti yang anda jangkakan. Daripada mengalih keluar sub-elemen yang tidak sepadan dengan keadaan penapis, ia mengembalikan objek dengan semua sub-elemen, termasuk yang tidak sepadan.

Untuk menambah baik penapisan, anda boleh menggunakan fungsi pemetaan bukannya fungsi penapis. Ini akan membolehkan anda mencipta tatasusunan baharu dengan mengubah setiap elemen dalam tatasusunan asal. Elemen yang diubah akan merangkumi hanya sub-elemen yang sepadan dengan keadaan penapis.

Berikut ialah formula yang dipertingkat menggunakan fungsi pemetaan:

let filteredArray = arrayOfElements.map((element) => {
  return {...element, subElements: element.subElements.filter((subElement) => subElement.surname === 1)}
})

Dalam formula yang dipertingkatkan ini:

  • Fungsi peta berulang pada setiap elemen dalam tatasusunan arrayOfElements.
  • Untuk setiap elemen, ia mencipta objek baharu yang merangkumi sifat elemen asal dan tatasusunan subElements yang ditapis.
  • The fungsi penapis digunakan pada tatasusunan subElements untuk mengalih keluar mana-mana sub-elemen yang tidak sepadan dengan keadaan penapis, iaitu subElement.surname === 1 dalam kes ini.
  • Pengendali hamparan (...) ialah digunakan untuk mencipta objek baharu yang menggabungkan sifat elemen asal dengan tatasusunan subElements yang ditapis.

Formula yang dipertingkat ini akan mengembalikan tatasusunan yang merangkumi hanya objek yang mempunyai sekurang-kurangnya satu subelemen dengan nama keluarga harta bersamaan dengan 1 dan setiap objek hanya akan mempunyai subelemen yang sepadan disertakan.

Atas ialah kandungan terperinci Bagaimana Menapis Tatasusunan Bersarang dalam Objek Berdasarkan Nilai Tertentu?. 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