ios - 更新数组内的自定义对象而不重新初始化

标签 ios arrays swift

 class Person {
   var firstName: String?
   var lastName: String?
   var age: String?

    init(_ firstName:String, lastName:String, age:String) {
        self.firstName = firstName
        self.lastName = lastName
        self.age = age
    }
}

我有一个 Person 类数组。

var arrayper = [Person]()

let person1 = Person("test1", lastName: "test1last", age: "20")
arrayper.append(person1)

let person2 = Person("test2", lastName: "test2last", age: "20")
arrayper.append(person2)

let person3 = Person("mock", lastName: "mock", age: "20")
arrayper.append(person3)

print(arrayper.filter({$0.firstName!.starts(with: "te")}))

现在我只想要名字和姓氏,但名字以“te”开头。并且还在运行时删除年龄属性。 我知道如何按名称排序。但不知道如何从数组对象中删除年龄!我不想创建另一个对象并替换为新对象。

任何建议或更好的方法。提前致谢!

最佳答案

你可以这样尝试

filtered = arrayper.filter({$0.firstName!.starts(with: "te")})


class PersonName {
    var firstName: String = ""
    var lastName: String = ""

    init(_ firstName:String, lastName:String) {
        self.firstName = firstName
        self.lastName = lastName
    }
}

var personNames: [PersonName] = [] // Initialize
filtered.forEach { (personDetail) in
    personNames.append( PersonName(personDetail.firstName ?? "", lastName: personDetail.lastName ?? "")) // Filtered values append to array
}

//打印输出

personNames.forEach { (personName) in
    print(personName.firstName)
    print(personName.lastName)

}

关于ios - 更新数组内的自定义对象而不重新初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53700830/

相关文章:

ios - 滚动到tableview的顶部并显示大标题iOS

ios - 检索 Firebase 数据的更有效方法?

ios - 设置内容插入使 UItableView 滚动一点

iOS 64 位应用程序大小翻倍

C 考试字符数组

javascript - 按日期对 javascript 数组进行排序

swift - 使类可编码

ios - 使用 swift 从中删除项目后,CollectionView indexPath 不更新

ios - 如何使搜索栏像默认邮箱一样缩小效果

c# - 如何将字节数组转换为字符串?