Arrays 在Swift中对2个链接数组排序?
我想对一个数组进行排序,并将顺序更改“镜像”到相同维度的另一个数组 问题与此类似,但适用于Swift语言: 例如:Arrays 在Swift中对2个链接数组排序?,arrays,swift,sorting,Arrays,Swift,Sorting,我想对一个数组进行排序,并将顺序更改“镜像”到相同维度的另一个数组 问题与此类似,但适用于Swift语言: 例如: let arr1 = ["a", "b", "c", "d", "e"] let arr2 = [1, 5, 9, 2, 3] ... //sort //result == ["a", "d", "e", "b", c"] 近似解我知道: for i in stride(from 0, to: arr2.count - 1, by: 1) { for j in stride
let arr1 = ["a", "b", "c", "d", "e"]
let arr2 = [1, 5, 9, 2, 3]
... //sort
//result == ["a", "d", "e", "b", c"]
近似解我知道:
for i in stride(from 0, to: arr2.count - 1, by: 1) {
for j in stride(from i + 1, to: arr2.count, by: 1) {
if arr2[i] > arr2[j] {
...//swap arr2[i] and arr2[j]
...//swap arr1[i] and arr1[j]
}
}
}
但是,他们为在Swift中高级处理阵列增加了许多额外的可能性。那么,是否可以使用内部Swift功能简化此解决方案
注:arr1
和arr2
作为单独的数组给出
已编辑
对。你发现了类似的问题,但它们的标题很糟糕,不能反映作者需要的答案。换句话说,如果你删除/关闭我的问题,人们可能会继续问它,因为它是不可能找到与现有的标题
将阵列放在一起zip
新数组按数组2排序
将数组映射到数组1
let arr1 = ["a", "b", "c", "d", "e"] let arr2 = [1, 5, 9, 2, 3] let result = zip(arr1, arr2) // [("a", 1), ("b", 5), ("c", 9), ("d", 2), ("e", 3)] .sorted(by: {$0.1 < $1.1}) // [("a", 1), ("d", 2), ("e", 3), ("b", 5), ("c", 9)] .map{ $0.0 } // ["a", "d", "e", "b", "c"]
让arr1=[“a”、“b”、“c”、“d”、“e”] 设arr2=[1,5,9,2,3] 让结果=zip(arr1,arr2)/[(“a”,1),(“b”,5),(“c”,9),(“d”,2),(“e”,3)] 。排序(按:{$0.1<$1.1})/[($a,1),($d,2),($e,3),($b,5),($c,9)] .map{$0.0}/[“a”、“d”、“e”、“b”、“c”]
将阵列放在一起zip
新数组按数组2排序
将数组映射到数组1
let arr1 = ["a", "b", "c", "d", "e"] let arr2 = [1, 5, 9, 2, 3] let result = zip(arr1, arr2) // [("a", 1), ("b", 5), ("c", 9), ("d", 2), ("e", 3)] .sorted(by: {$0.1 < $1.1}) // [("a", 1), ("d", 2), ("e", 3), ("b", 5), ("c", 9)] .map{ $0.0 } // ["a", "d", "e", "b", "c"]
让arr1=[“a”、“b”、“c”、“d”、“e”] 设arr2=[1,5,9,2,3] 让结果=zip(arr1,arr2)/[(“a”,1),(“b”,5),(“c”,9),(“d”,2),(“e”,3)] 。排序(按:{$0.1<$1.1})/[($a,1),($d,2),($e,3),($b,5),($c,9)] .map{$0.0}/[“a”、“d”、“e”、“b”、“c”]
struct
并将数据正确地保存在一起。@staticVoidMan是的,他们要求相同的东西。但与此同时,他们并没有清楚地回答他们的问题(在你的链接中还有一个重复的问题)<代码>基于数组排序数组听起来像是两个具有类似继承关系的数组<代码>2链接数组更清晰,因为这些数组没有明确的关系,更容易找到我的标题-我知道你计划关闭并删除我的问题没有计划删除你的问题。它将作为副本保持关闭状态。这很好,对你没有任何负面影响。由于标题更好,搜索人员可能会遇到您的问题。他们将在这里看到答案,以及副本及其所有答案的链接。人人共赢。正确的解决方案是只使用一个阵列。定义一个struct
并将数据正确地保存在一起。@staticVoidMan是的,他们要求相同的东西。但与此同时,他们并没有清楚地回答他们的问题(在你的链接中还有一个重复的问题)<代码>基于数组排序数组听起来像是两个具有类似继承关系的数组<代码>2链接数组更清晰,因为这些数组没有明确的关系,更容易找到我的标题-我知道你计划关闭并删除我的问题没有计划删除你的问题。它将作为副本保持关闭状态。这很好,对你没有任何负面影响。由于标题更好,搜索人员可能会遇到您的问题。他们将在这里看到答案,以及副本及其所有答案的链接。为大家赢,谢谢。我唯一的问题是,是否可以通过名称而不是数字来修复代码以访问元组?您可以使用完整的语法,其中缩写$0/$1
由参数标签表示。使用“代码完成”,然后按封口占位符上的return
。谢谢。我唯一的问题是,是否可以通过名称而不是数字来修复代码以访问元组?您可以使用完整的语法,其中缩写$0/$1
由参数标签表示。使用“代码完成”,然后按封口占位符上的return
。