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