Ada kelas yang disebut 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
}
}
Dan saya memiliki berbagai Employee
objek. Apa yang saya butuhkan sekarang adalah mengekstrak id
s dari semua objek dalam array itu ke dalam array baru.
Saya juga menemukan pertanyaan serupa ini . Tapi itu di Objective-C jadi itu digunakan valueForKeyPath
untuk mencapai ini.
Bagaimana saya bisa melakukan ini di Swift?
map
dilakukannya - itu mengubah arrayEmployee
menjadi arrayInt
, diisi denganid
bidang. Yang setara dengan mengatakan "ekstrak bidang id dari semua contohEmployee
dan letakkan ke dalam array"ids
semuaid
nilai dari arrayEmployee
s. Catatan, ini membiarkan array asli tetap utuh.array.map( { $0.id })
Swift 5 menawarkan banyak cara untuk mendapatkan larik nilai properti dari larik objek serupa. Sesuai dengan kebutuhan Anda, Anda dapat memilih salah satu dari enam contoh kode Playground berikut untuk menyelesaikan masalah Anda.
1. Menggunakan
map
metodeDengan Swift, tipe yang sesuai dengan
Sequence
protokol memilikimap(_:)
metode. Kode contoh berikut menunjukkan cara menggunakannya:2. Menggunakan
for
loop3. Menggunakan
while
loopPerhatikan bahwa dengan Swift, di belakang layar, sebuah
for
loop hanyalah sebuahwhile
loop di atassequence
iterator (lihat IteratorProtocol untuk lebih jelasnya).4. Menggunakan
struct
yang sesuai denganIteratorProtocol
danSequence
protokol5. Menggunakan
Collection
ekstensi protokol danAnyIterator
6. Menggunakan KVC dan
NSArray
'svalue(forKeyPath:)
metodePerhatikan bahwa contoh ini perlu
class Employee
mewarisi dariNSObject
.sumber