我有一个测验应用程序,在该应用程序中,用户可以选择答案或否。如果用户跳过没有答案的问题,我想为该问题添加字典0值。如果选择A,我为B加1,然后加2,直到E。在我的问题1中,键:1->代表问题1,值:1->代表A答案。如果用户选择一个选项,我将添加词典。如果用户跳过而没有任何答案,那么我不会添加答案。
function cancelSession() {
console.log($(this).data('sessionID'));
}
我的问题从这里开始。我想添加键= 3,键= 5,键= 8默认值=0。我的问题总计为20。我该怎么办?
答案 0 :(得分:1)
您可以创建答案的结构并轻松管理它,如以下代码所示:
struct Answer {
var questionId: Int
var answerValue: Int?
}
let answer1 = Answer(questionId: 1, answerValue: 5)
let answer2 = Answer(questionId: 2, answerValue: nil)
let arrAnswers = [answer1, answer2]
如果要将nil值替换为0,则可以使用以下函数:
let arrNewAnswers = arrAnswers.flatMap { (answer) -> Answer in
if answer.answerValue == nil {
return Answer(questionId: answer.questionId, answerValue: 0)
}
return answer
}
输出:
第一个数组包含nil值
打印(arrAnswers)
[答案(questionId:1,answerValue:可选(5)),Answer(questionId:2,answerValue:nil)]
第二个数组将0更新为nil。
print(arrNewAnswers)
[答案(questionId:1,answerValue:可选(5)),answer(questionId:2,answerValue:可选(0))
我希望这对您有帮助。
答案 1 :(得分:0)
如果您只使用以全0初始化的整数数组,对我来说似乎更容易,例如:
var answers = [Int](repeating: 0, count: 20)
然后,当用户回答“索引”问题时,您只需执行以下操作:
answers[index] = userAnswer //A number based on the choices option
或者您可以通过以下方式访问问题的答案:
userSaidForIndexQuestion = answers[index] //Will be 0 if you never add an answer
希望有帮助...