Menapis Tatasusunan Objek dengan Tatasusunan Berdasarkan Nilai Bersarang
Dalam pengaturcaraan, selalunya perlu menapis tatasusunan berdasarkan kriteria tertentu. Apabila berurusan dengan struktur objek kompleks dengan tatasusunan bersarang, proses penapisan boleh menjadi lebih mencabar. Soalan ini meneroka isu di mana pembangun perlu menapis tatasusunan objek berdasarkan nilai objek bersarang.
Transformasi yang diingini adalah untuk menapis sebarang elemen dalam subtatasusunan yang tidak memenuhi nilai tertentu. Tatasusunan input mengandungi objek dengan sifat "nama" dan tatasusunan "subElements", setiap satunya mengandungi objek dengan sifat "nama keluarga". Matlamatnya adalah untuk mengalih keluar semua sub-elemen yang "nama keluarga" tidak sama dengan 1.
Pada mulanya, pembangun mencuba logik penapisan berikut:
let filteredArray = arrayOfElements.filter((element) => element.subElements.some((subElement) => subElement.surname === 1));
Sementara pendekatan ini mengenal pasti objek dengan sekurang-kurangnya satu sub-elemen yang sah, ia gagal mengalih keluar sub-elemen yang tidak sah. Untuk menangani isu ini, kami boleh menggunakan mekanisme penapisan yang lebih komprehensif:
arrayOfElements.map((element) => { return {...element, subElements: element.subElements.filter((subElement) => subElement.surname === 1)} })
Kod yang dikemas kini ini menggunakan kaedah "peta" untuk melintasi tatasusunan. Ia mengekalkan objek asal dan mencipta objek baharu dengan tatasusunan "subElements" yang diubah suai. Kaedah "penapis" digunakan untuk mengalih keluar sub-elemen yang tidak memenuhi nilai "nama keluarga" 1.
Dengan menggabungkan teknik penapisan ini, pembangun boleh mengalih keluar sub-elemen tidak sah dengan berkesan dan mencapai transformasi yang diingini daripada tatasusunan objek.
Atas ialah kandungan terperinci Bagaimana untuk Menapis Tatasusunan Objek dengan Tatasusunan Bersarang Berdasarkan Nilai Bersarang Khusus?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!