首页 > 解决方案 > Swift - 在具有多个变量的自定义类数组中查找最大值

问题描述

我想在我的数组中找到最高值。我在 Apples 文档中找到了 .max() 方法。

let heights = [67.5, 65.7, 64.3, 61.1, 58.5, 60.3, 64.9]
let greatestHeight = heights.max()
print(greatestHeight)
// Prints "Optional(67.5)"

我的数组具有自定义数据类型。数据类型包含两个整数类型的变量。如何从其中一个变量中找到最高值?

这是我的课。

class Example: Codable {

// Variables
var value1: Int
var value2: Int

// Init
init(_value1: Int, _value2: Int) {
    value1 = _value1
    value2 = _value2
}    

}

标签: arraysswift

解决方案


正如您在评论中澄清的那样:

我想找出该数组中所有对象的 value1 的最大值

这可以通过将每个对象映射到其value1然后确定最大值来实现:

let maxValue1 = examples.map { $0.value1 }.max()

如果给定的数组真的很大,那么使用“惰性变体”来避免创建中间数组可能是有利的:

let maxValue1 = examples.lazy.map { $0.value1 }.max()

推荐阅读