mihaifm / linq

linq.js - LINQ for JavaScript

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How to use linq in nested of nested object

renerlemes opened this issue · comments

I have the following code:

const condominioImovelOriginal = props.data.Condominios.filter((condominio: any) =>
		condominio.Imoveis.find((imovel: any) => imovel.Reservas.find((reserva: any) => reserva.Id == selectedReservation.Reserva.Id))
	).map((condominio: any) => {
		const imovel = condominio.Imoveis.find((imovel: any) => imovel.Reservas.find((reserva: any) => reserva.Id == 46630));

		return {
			Condominio: {
				Id: condominio.Id,
				Nome: condominio.Nome
			},
			Imovel: {
				Id: imovel.Id,
				Nome: imovel.Nome
			},
			Reserva: selectedReservation.Reserva
		};
	})[0];

How to use this lib in this code? I want to filter by Condominios.Imoveis.Reservas.Id === 46630

Condominios (Condominium) = Array
Reservas (Reservations) = Array
Imoveis (Properties) = Array

The JSON:

"Condominios": [
        {
            "Id": 1,
            "Nome": "Fiore Prime",
            "Imoveis": [
                {
                    "Id": 1,
                    "Nome": "A 0301",
                    "Reservas": [
                        {
                            "Id": 46630,
                            "DataCheckIn": "2023-09-23",
                            "DataCheckOut": "2023-09-25",
                            "Diarias": 2,
                            "Cliente": "Rener Lemes",
                            "Status": "Confirmada",
                            "StatusFinanceiro": "EmAberto"
                        },
                        {
                            "Id": 47678,
                            "DataCheckIn": "2023-09-26",
                            "DataCheckOut": "2023-09-29",
                            "Diarias": 3,
                            "Cliente": "Rener Lemes",
                            "Status": "Confirmada",
                            "StatusFinanceiro": "EmAberto"
                        }
                    ]
                },
                {
                    "Id": 252,
                    "Nome": "A 0302",
                    "Reservas": []
                }
            ]
        }
    ]