Arrays 如何使用优化方法替换模型数组中的元素?
如果存在如下所示的Arrays 如何使用优化方法替换模型数组中的元素?,arrays,swift,Arrays,Swift,如果存在如下所示的数组,其中包含用户实例 class User { var id: String var name: String init(id: String, name: String) { self.id = id self.name = name } } 现在,如果有5个用户模型的ID为1到5,并且存储在数组中,如下所示(无论名称如何) 现在假设我正在手动创建一个id为1 let latestUser = User(id: "
数组
,其中包含用户
实例
class User {
var id: String
var name: String
init(id: String, name: String) {
self.id = id
self.name = name
}
}
现在,如果有5个用户模型的ID为1到5,并且存储在数组中,如下所示(无论名称如何)
现在假设我正在手动创建一个id为1
let latestUser = User(id: "1", name: "Updated Name") //id 1 is already there but this is the updated model
有没有办法找到索引为1的用户模型的索引,而不使用filter
,这样我就可以像这样替换实例
使用数组扩展或任何东西。我们可以为属性id设置索引(of:)
约束吗
let indexOfUser1 = userModels.index(of: latestUser) // It should return 1.
userModels[indexOfUser1] = latestUser //Replacing the user with id 1 with the latest one
像这样(就像我们做的下标一样)
实施可均衡的:
class User: Equatable {
var id: String
var name: String
init(id: String, name: String) {
self.id = id
self.name = name
}
static func ==(lhs: User, rhs: User) -> Bool {
return lhs.id == rhs.id
}
}
然后你可以:
array.index(of: someUser)
“查找索引为1的用户模型的索引”是什么意思?你的意思是“找到id
为1的用户模型的索引”吗?我想用优化方法将user1替换为latestUser。
class User: Equatable {
var id: String
var name: String
init(id: String, name: String) {
self.id = id
self.name = name
}
static func ==(lhs: User, rhs: User) -> Bool {
return lhs.id == rhs.id
}
}
array.index(of: someUser)