Допустим, у меня есть данные, как показано ниже.
[
{
hotelName : "Hotel 1",
hotelType : 1
prices :
[
{
roomType: "Single Room",
price : 1231
},
{
roomType: "Twin Room",
price : 1232
},
{
roomType: "Triple Room",
price : 1233
}
]
},
{
hotelName : "Hotel 2",
hotelType : 2
prices :
[
{
roomType: "Single Room",
price : 1241
},
{
roomType: "Twin Room",
price : 1242
},
{
roomType: "Triple Room",
price : 1243
}
]
}
]
У меня есть другой массив для фильтра в следующем формате.
[
{
"roomType": "Single Room"
},
{
"roomType": "Twin Room"
}
]
То, что я хочу получить, это получить номер, который имеет вышеТипы.
Я пытаюсь ниже путь, но застрял в нижней точке.
finalArray = finalArray.filter() {
hotelInfo in
hotelInfo.prices!.roomType!==(
// compare for roomType from another array
)
}
Может ли кто-нибудь направить меня в правильном направлении?
Структура, которую я имею, этокак показано ниже.
struct Hotels: Encodable, Decodable {
var hotelName: String?
var hotelType: Int?
var prices: [RoomPrices]?
}
struct RoomPrices: Encodable, Decodable {
var roomType: String?
var price: Double?
}
Для фильтра у меня есть модель, как показано ниже
struct RoomFilter: Decodable {
var roomType: String?
}
Цены только для одного словаря
[
{
hotelName : "Hotel 1",
hotelType : 1
prices :
{
roomType: "Single Room",
price : 1231
}
},
{
hotelName : "Hotel 2",
hotelType : 2
prices :
{
roomType: "Twin Room",
price : 1242
}
}
]
Обновленная структура будет
struct Hotels: Encodable, Decodable {
var hotelName: String?
var hotelType: Int?
var prices: RoomPrices?
}
struct RoomPrices: Encodable, Decodable {
var roomType: String?
var price: Double?
}