如何将字典值传递给数组?
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 中很难管理的复杂字典结构,可以根据您的要求使用 struct
或 class
,这样既简单又可读。
因为我不知道你使用的实际结构所以仅举个例子
例如
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
}
现在你可以创建问题数组,里面有选项和正确答案;酷吧
希望对您有所帮助
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 中很难管理的复杂字典结构,可以根据您的要求使用 struct
或 class
,这样既简单又可读。
因为我不知道你使用的实际结构所以仅举个例子 例如
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
}
现在你可以创建问题数组,里面有选项和正确答案;酷吧
希望对您有所帮助