我以前见过这个,但似乎无法在index.html
中找到它。所以我有两个数组swift
和arrayA
。我希望arrayB
将自己排序为arrayB
的相同顺序。例如,她就是数组:
arrayA
由于
答案 0 :(得分:3)
1)这是我理解的
arrayA定义了某种顺序。在你的例子中,巧合的是整数的升序,但它实际上可以是任何类型的顺序,如下所示:
2)您不喜欢这种解决方案
arrayB = arrayA
你实际上需要一种方法来移动 arrayB中的元素,以便将它排序为arrayA(可能是因为你需要一个更通用的问题的解决方案,其中数组的元素不是简单的整数)。
3)现在,我的解决方案
var arrayA = [1, 2, 3, 4, 5]
var arrayB = [4, 5, 1, 2, 3]
var indexes = [Int: Int]()
for (index, elm) in enumerate(arrayA) {
indexes[elm] = index
}
// now indexes[i] gives me the position of the integer i inside arrayA, e.g. indexes[3] -> 2
arrayB.sort { return indexes[$0] < indexes[$1] }
// now arrayB has been sorted as arrayA
<强>结论强>
这种方法适用于:
如果您正在寻找,请告诉我。
答案 1 :(得分:-1)
我认为你只需要使用reverse()
函数。
var arrayA = [1,2,3,4,5]
arrayB = reverse(arrayA)
将导致arrayB = [5,4,3,2,1]
,反之亦然。