获取枚举数组的基数组

时间:2017-02-14 19:37:46

标签: arrays swift

我需要根据每个元素的值和索引对数组进行排序,所以我想做这样的事情:

let a = [4,9,5,7].enumerate()
let b = a.sort { ... }

但是我需要将b转换回没有索引的数组。我目前的解决方案是

let c = b.map { $0.1 }

但是我想知道,如果有更简单的方法,因为b属于EnumerateSequence<Array<Int>>类型并且具有保存我想要的数组的属性base。不幸的是baseinternal而且我不知道是否有任何方法可以返回我想要的内容。

注意:您可能已经注意到这是Swift 2.虽然我需要Swift 2中的解决方案(如果有的话),但我当然感兴趣的是它们之间的区别是什么? Swift 2和Swift 3。

2 个答案:

答案 0 :(得分:0)

  

但我想知道,如果有更简单的方法

没有。 array_keys() 简单

答案 1 :(得分:0)

这稍微( 2个字符)更简单:

let c = b.map { $1 }

map会收到两个值的元组,因此您可以将这两个值称为$0.0$0.1,或$0和{{1} }。当您的闭包只使用$1时,$0就是整个元组,因此$0.0指的是各个项目。当你的闭包提到.1时,$1是元组的第一项,$0是元组的第二项。