大家都知道php有shuffle函数可以很方便的随机排序一个数组,下面分享一个swift的shuffle函数,用于随机排序一个数组。
extension Array{
public func shuffle() -> Array {
var list = self
for index in 0..<list.count {
let newIndex = Int(arc4random_uniform(UInt32(list.count-index))) + index
if index != newIndex {
swap(&list[index], &list[newIndex])
}
}
return list
}
}
// 生成一个数组
var arr = Array<Int>();
arr.append(contentsOf: 1...10)
arr.shuffle()
// 输出结果如下
// [10, 6, 3, 5, 4, 2, 8, 1, 9, 7]
另一种方法排序数组的方法
let arrShuffle = arr.sorted() {(_,_) -> Bool in
arc4random() < arc4random()
}
print(arrShuffle)
// 输出如下
// [6, 2, 3, 5, 4, 1, 7, 8, 9, 10]
这种是最简单的方法,利用一个闭包函数排序数组。但是这种方法无论效率还是可拓展性上都不如第一种方法。