class Flight{
var name:String?
var vocabulary:Vocabulary?
}
class Vocabulary{
var seatMapPlan:[Plan] = []
var foodPlan:[Plan] = []
}
class Plan{
var planName:String?
var planId:String?
}
var flightList:[Flight] = []
var plan1 = Plan()
plan1.planId = "planId1"
plan1.planName = "Planname1"
var plan2 = Plan()
plan2.planId = "planId2"
plan2.planName = "Planname2"
var plan3 = Plan()
plan3.planId = "planId3"
plan3.planName = "Planname3"
var plan4 = Plan()
plan4.planId = "planId4"
plan4.planName = "Planname4"
var plan5 = Plan()
plan5.planId = "planId5"
plan5.planName = "Planname5"
var plan6 = Plan()
plan6.planId = "planId6"
plan6.planName = "Planname6"
var flight1 = Flight()
flight1.name = "Flight1"
flight1.vocabulary = Vocabulary()
flight1.vocabulary?.seatMapPlan = [plan1, plan2]
flight1.vocabulary?.foodPlan = [plan3, plan4, plan5]
var flight2 = Flight()
flight2.name = "Flight2"
flight2.vocabulary = Vocabulary()
flight2.vocabulary?.seatMapPlan = [plan2, plan3]
flight2.vocabulary?.foodPlan = [plan3, plan4, plan5]
flightList=[flight1, flight2]
問題1。この特定の例については、iOS-迅速、3-入れ子のソートや組合flatmapと、マップ、フィルタまたはformUnion
seatMapUnion = [plan1,plan2,plan3]
私はこれを達成することができません。 この特定の問題を解決するために、フィルター、フラットマップ、マップの組み合わせを教えてください。
問題2: 私は、この配列フライトリストを計画(プラン1または複数)に基づいてソートしなければならないという逆のシナリオもあります。フィルターとマップに基づいてこれを並べ替えたいが、入れ子では実現が困難になっている。例: 1: 検索パラメータがseatMapPlanのplan1である場合。結果はflight1です。
2: また、検索パラメータがseatMapPlanのplan2である場合。結果はflight1、flight2です。
自分で好きなことを行い、パラメータを持つinitメソッドを追加します。 – gnasher729
実際の環境でGnasher729はjson構文解析されており、ネストされています。これは単に質問するためのものです。 –