Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何使用优化方法替换模型数组中的元素?_Arrays_Swift - Fatal编程技术网

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)