过滤数组

时间:2017-03-02 01:35:06

标签: arrays filter swift3 flatmap

我刚刚开始理解使用flatMap等。为我的数组制作过滤器。问题是我不太清楚如何在其他人中使用过滤器以提高搜索效率,特别是我需要在数组“RA”中提取“nombre”元素(RA包含在数组“Actividades”中)因此,可能有几个“RA”阵列)。在这种情况下的过滤器是Planificacion - > idCurso == 61,Semana - > semana ==“S7”,Clase - > clase ==“C1”。过滤器也可能没有“RA”元素。

class Planificacion: NSObject, NSCoding {
    let idCurso: Int
    let semana: [Semana]
    init(idCurso: Int, semana: [Semana]) {
        self.idCurso = idCurso
        self.semana = semana
    }
}

class Semana: NSObject, NSCoding  {
    let semana: String
    let id: Int
    let numero: Int
    let clase: [Clase]
    init(semana: String, id: Int, numero: Int, clase: [Clase]) {
        self.semana = semana
        self.id = id
        self.numero = numero
        self.clase = clase
    }
}

class Clase: NSObject, NSCoding {
    let clase: String
    let id: Int
    let numero: Int
    let fecha_progr: String
    let actividades: [Actividades]
    init(clase: String, id: Int, numero: Int, fecha_progr: String, actividades: [Actividades]) {
        self.clase = clase
        self.id = id
        self.numero = numero
        self.fecha_progr = fecha_progr
        self.actividades = actividades
    }
}

class Actividades: NSObject, NSCoding {
    let id: Int
    let texto: String
    let tipo: String
    let ra: [RA] 
    init(id: Int, texto: String, tipo: String, ra: [RA]) {
        self.id = id
        self.texto = texto
        self.tipo = tipo
        self.ra = ra
    }
}

class RA: NSObject, NSCoding {
    let id: Int
    let nombre: String 
    init(id: Int, nombre: String) {
        self.id = id
        self.nombre = nombre
    }
}
var arrayPlanificacion = [Semana]()
if let sale = PlanificacionAll.first(where: { $0.idCurso == 61 }) {
    arrayPlanificacion = sale.semana
    arrayPlanificacion.sort { $0.numero < $1.numero }
}

if let clase = arrayPlanificacion.first(where: { $0.semana == "S7" }) {
    for i in clase.clase {
        if let inClase = clase.clase.first(where: { $0.clase == "C1" }){
            var actividades = [Actividades]()
            actividades = inClase.actividades    
            ...  
        }
    }
}

0 个答案:

没有答案