Hay una clase llamada Employee.
class Employee {
    var id: Int
    var firstName: String
    var lastName: String
    var dateOfBirth: NSDate?
    init(id: Int, firstName: String, lastName: String) {
        self.id = id
        self.firstName = firstName
        self.lastName = lastName
    }
}Y tengo una variedad de Employeeobjetos. Lo que ahora necesito es extraer los ids de todos esos objetos en esa matriz en una nueva matriz.
También encontré esta pregunta similar . Pero está en Objective-C, por lo que se usa valueForKeyPathpara lograr esto.
¿Cómo puedo hacer esto en Swift?

maphace: transforma una matriz deEmployeeen una matriz deInt, llena con elidcampo. Lo que equivale a decir "extraer el campo id de todas las instancias deEmployeey ponerlas en una matriz"idsde todos losidvalores de la matriz deEmployees. Tenga en cuenta que deja intacta la matriz original.array.map( { $0.id })Swift 5 ofrece muchas formas de obtener una matriz de valores de propiedad de una matriz de objetos similares. Según sus necesidades, puede elegir uno de los siguientes seis ejemplos de código de Playground para resolver su problema.
1.
mapMétodo de usoCon Swift, los tipos que se ajustan al
Sequenceprotocolo tienen unmap(_:)método. El siguiente código de muestra muestra cómo usarlo:2. Usando
forbucle3. Usando
whilebucleTenga en cuenta que con Swift, entre bastidores, un
forbucle es solo unwhilebucle sobresequenceel iterador de a (consulte IteratorProtocol para obtener más detalles).4. Uso de una
structque se ajusta aIteratorProtocolySequenceprotocolos5. Usando la
Collectionextensión de protocolo yAnyIterator6. Usando
NSArrayelvalue(forKeyPath:)método de KVC yTenga en cuenta que este ejemplo requiere
class Employeeheredar deNSObject.fuente