Arrays Swift-如何从数组中找到最大值并确定它来自哪个数组
///使用所有值创建数组 ////找到最大值 ////结果是10 我的问题是如何在不做大量if语句的情况下找到结果10来自哪个变量Arrays Swift-如何从数组中找到最大值并确定它来自哪个数组,arrays,swift,Arrays,Swift,///使用所有值创建数组 ////找到最大值 ////结果是10 我的问题是如何在不做大量if语句的情况下找到结果10来自哪个变量 我希望结果是amyi实际上我认为问题在于返回变量名而不是值。你可以通过Swift字典来实现它。示例代码如下所示: let maxnum = maxElement(users1) 结果是:[amyc] 它将找到结果最大值来自哪个变量,并将变量名作为键返回。有一种比上面的答案更简单的方法。如果所有值都在一个数组中,并且希望找到最大值,只需执行以下操作: let us
我希望结果是amyi实际上我认为问题在于返回变量名而不是值。你可以通过Swift字典来实现它。示例代码如下所示:
let maxnum = maxElement(users1)
结果是:[amyc]
它将找到结果最大值来自哪个变量,并将变量名作为键返回。有一种比上面的答案更简单的方法。如果所有值都在一个数组中,并且希望找到最大值,只需执行以下操作:
let users1 = [
"amya": 1,
"amyb": 2,
"amyc": 10
]
let max = users1.values.maxElement()
func allKeysForValue<K, V : Equatable>(dict: [K : V], val: V) -> [K] {
return dict.filter{ $0.1 == val }.map{ $0.0 }
}
let keys = allKeysForValue(users1, val: max!)
print(keys)
上面的代码将对数组进行排序,然后最后一个元素将始终是最大的。这应该适用于Swift 5。我不知道以前版本的Swift。只需在users1中的元素中循环,直到找到10的值。循环怎么样?哈哈-晚了8秒
let maxnum = maxElement(users1)
let users1 = [
"amya": 1,
"amyb": 2,
"amyc": 10
]
let max = users1.values.maxElement()
func allKeysForValue<K, V : Equatable>(dict: [K : V], val: V) -> [K] {
return dict.filter{ $0.1 == val }.map{ $0.0 }
}
let keys = allKeysForValue(users1, val: max!)
print(keys)
let array = [1,10,6,3,5,9,7]
let sortedArray = array.sorted()
let largestElement = sortedArray.last