如何将字典值传递给数组?

How to pass Dictionary value to an Array?

var params = [[String:Any]]()

for i in 0 ..< QuesCount  {
    self.params.append([self.key1[i] : self.value1[i],
                            self.key2[i] : self.value2[i]])
}

输出:

self.params= [["answer[0][question_id]": "1", "answer[0][ans_id]": "21"], ["answer[1][question_id]": "2", "answer[1][ans_id]": "26"], ["answer[2][ans_id]": "36", "answer[2][question_id]": "5"], ["answer[3][ans_id]": "40", "answer[3][question_id]": "6"], ["answer[4][question_id]": "7", "answer[4][ans_id]": "41"], ["answer[5][question_id]": "8", "answer[5][ans_id]": "46"], ["answer[6][ans_id]": "49", "answer[6][question_id]": "9"], ["answer[7][question_id]": "10", "answer[7][ans_id]": "54"], ["answer[8][question_id]": "11", "answer[8][ans_id]": "57"]]

但问题是我想要:

理想的输出:

["answer[0][question_id]": "1", "answer[0][ans_id]": "21"], ["answer[1][question_id]": "2", "answer[1][ans_id]": "26"], ["answer[2][ans_id]": "36", "answer[2][question_id]": "5"], ["answer[3][ans_id]": "40", "answer[3][question_id]": "6"], ["answer[4][question_id]": "7", "answer[4][ans_id]": "41"], ["answer[5][question_id]": "8", "answer[5][ans_id]": "46"], ["answer[6][ans_id]": "49", "answer[6][question_id]": "9"], ["answer[7][question_id]": "10", "answer[7][ans_id]": "54"], ["answer[8][question_id]": "11", "answer[8][ans_id]": "57"]

如何获得理想的输出?

你可以通过这种方式得到所有的值 -

for i in 0 ..< params.count
{
     print(params[i] , terminator:",")
}

我不会回答你的问题,因为它看起来不是很方便的解决方案。

您应该避免使用在 future.You 中很难管理的复杂字典结构,可以根据您的要求使用 structclass,这样既简单又可读。

因为我不知道你使用的实际结构所以仅举个例子 例如

struct  Question {

   var questionID:String?
   var question:String?
   var answersOption:[Options]?

   var correctAnswer:Options?{
       return self.answersOption.filter{[=10=].isCorrectAnswer == true}
   } 


}

struct Options {
   var answerID:String?
   var answer:String?
   var isCorrectAnswer = false
}

现在你可以创建问题数组,里面有选项和正确答案;酷吧

希望对您有所帮助