Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.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 Swift-如何从数组中找到最大值并确定它来自哪个数组_Arrays_Swift - Fatal编程技术网

Arrays Swift-如何从数组中找到最大值并确定它来自哪个数组

Arrays Swift-如何从数组中找到最大值并确定它来自哪个数组,arrays,swift,Arrays,Swift,///使用所有值创建数组 ////找到最大值 ////结果是10 我的问题是如何在不做大量if语句的情况下找到结果10来自哪个变量 我希望结果是amyi实际上我认为问题在于返回变量名而不是值。你可以通过Swift字典来实现它。示例代码如下所示: let maxnum = maxElement(users1) 结果是:[amyc] 它将找到结果最大值来自哪个变量,并将变量名作为键返回。有一种比上面的答案更简单的方法。如果所有值都在一个数组中,并且希望找到最大值,只需执行以下操作: let us

///使用所有值创建数组

////找到最大值

////结果是10

我的问题是如何在不做大量if语句的情况下找到结果10来自哪个变量


我希望结果是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