在 Swift 中将特定的数组元素移动到末尾

时间:2021-06-29 09:35:25

标签: arrays swift sorting

我有一个对象数组,比如看起来像这样的联系人

class Contact {
    var name: String
    var status: Status
    
    init(name: String, status: Status) {
        self.status = status
        self.name = name
    }
}

enum Status: String {
    case referred, invalid, member
}

我想对此类对象的数组进行排序,以便将所有成员保留在最后。

1 个答案:

答案 0 :(得分:0)

这样做可以将所有成员保留在数组的末尾。其他元素保留原始顺序。

contacts.sort(by: { c1, c2 in
    c2.status == .member
})

输出

**Original array:**
Anand referred
Arti member
Abid member
Basha referred
Bumrah member
Catherine member
Cambly invalid
Faiz member
Farnades referred
Zebra member

**New Array:**
Anand referred
Basha referred
Cambly invalid
Farnades referred
Zebra member
Faiz member
Catherine member
Bumrah member
Abid member
Arti member