Bagaimana untuk Menapis Tatasusunan Objek dengan Tatasusunan Bersarang Berdasarkan Nilai Bersarang Khusus?

DDD
Lepaskan: 2024-10-31 12:40:02
asal
739 orang telah melayarinya

How to Filter an Array of Objects with Nested Arrays Based on a Specific Nested Value?

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

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

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!

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