【发布时间】:2026-02-02 08:00:02
【问题描述】:
我觉得这个问题必须在某个地方得到回答,但我一直在寻找几天没有运气。我有一个下面的例子。我有一组用户,我需要将它们过滤到具有匹配 ID 属性的用户,我知道下面的代码无法编译.. 非常感谢您提供任何帮助。
struct User {
var id: Int
var name: String
}
let userArray = [
User(id: 1, name: "A"),
User(id: 2, name: "B"),
User(id: 1, name: "C"),
User(id: 3, name: "D"),
]
let newArray = userArray.filter({ $0.id == $1.id })
// This is what i want to achieve
// newArray = [User(id: 1, name: "A"), User(id: 1, name: "C")]
在实际项目中,id是动态返回的。所以我只需要能够检查匹配的内容,而不知道实际的 id 是什么。
【问题讨论】:
-
卢卡斯的回答有点回答你的问题,但那是因为你的问题不清楚。你的目标是什么?是为了隔离任何具有相同 id 的用户吗?如果是这样,如果您有两个 id == 1 的用户和三个 id == 2 的用户会发生什么?你想怎么处理?
-
@flanker 谢谢,好的,它在集合视图单元格中返回,因此每次循环时都应该为每个单元格创建一个不同的实例。我需要为用户上的每个匹配 id 填充一个数组,然后能够通过它们索引个人