我正在尝试对包含50个数组的20个测验问题进行排序,然后将其削减。这些测验问题是字典。
var quizQuestionsRaw = [[String:String]]()
var quizQuestions = [[String:String]]()
quizQuestionsRaw = GKRandomSource.sharedRandom().arrayByShufflingObjects(in: quizQuestionsRaw) as! [[String:String]]
然后我尝试了
quizQuestions = quizQuestionsRaw.removeFirst(30) as! [[String:String]]
但是我只是出错了。有人可以帮忙吗?谢谢。
答案 0 :(得分:1)
好,尝试这个。.
//First We'll Create an Extension to Shuffle Array
extension Array
{
mutating func shuffle()
{
for _ in 0..<10
{
sort { (_,_) in arc4random() < arc4random() }
}
}
}
// Replace this Array of Dictionary With your Q&A Array
var array:[[String: String]] = [["Q1":"A1"],["Q2":"A2"],["Q3":"A3"],["Q4":"A4"],["Q5":"A5"]....["Q30":"A30"]]
array.shuffle()
// This line will return last 20 elements of array
array.suffix(20)
如果您使用的是Swift 4.2或更高版本,则在这种情况下无需创建扩展来随机播放数组,此行就足够了
array.shuffled()
祝你好运:)