Swift 4如何从字典数组中返回较小的数组

时间:2018-08-08 21:45:05

标签: swift4

我正在尝试对包含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]]

但是我只是出错了。有人可以帮忙吗?谢谢。

1 个答案:

答案 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() 

祝你好运:)