以下是一个Swift的示例代码,用于按照每个ID的最大值进行过滤/排序:
// 定义一个包含ID和值的结构体
struct Item {
let id: Int
let value: Int
}
// 创建一个包含Item的数组
let items = [
Item(id: 1, value: 5),
Item(id: 2, value: 10),
Item(id: 1, value: 8),
Item(id: 3, value: 2),
Item(id: 2, value: 15),
Item(id: 3, value: 6)
]
// 使用reduce方法按照每个ID的最大值进行过滤/排序
let filteredItems = items.reduce(into: [Int: Int]()) { result, item in
if let maxValue = result[item.id] {
result[item.id] = max(maxValue, item.value)
} else {
result[item.id] = item.value
}
}
.sorted { $0.key < $1.key } // 按照ID进行排序
// 打印结果
for (id, maxValue) in filteredItems {
print("ID: \(id), Max Value: \(maxValue)")
}
以上代码使用reduce方法,将数组中的每个元素按照ID进行分组,并找到每个ID对应的最大值。然后使用sorted方法按照ID进行排序。最后,打印输出每个ID和对应的最大值。