如果连续3次删除数组,如何从数组中删除?

时间:2018-01-27 07:53:32

标签: arrays swift

我在做我的测验应用。我得到了一个包含单词,翻译,定义等的结构化数组。每次回答后,我的应用程序都会生成一个随机问题。所以,我的问题是如果用户连续3次正确删除了我的数组中的单词。

如何将计数器附加到正确回答的单词(将为数组中的每个单词计算正确的答案)?

我试图将我的数组加倍,然后删除这个单词,但这是很多编码和重复的行。

1 个答案:

答案 0 :(得分:0)

您可以使用此类获取下一个问题,并在问题得到正确回答后更新数组:

class QuestionProvider {
    struct Question {
        let question: String
        let answer: String
        var rightAnswers: Int

        init(question: String, answer: String) {
            self.question = question
            self.answer = answer
            self.rightAnswers = 0
        }
    }
    private var questions = [Question]()

    func add(question: Question) {
        questions.append(question)
    }

    func getNextQuestion() -> Question {
        let index = Int(arc4random_uniform(UInt32(questions.count)))
        return questions[index]
    }

    func answeredCorrectly(question: Question) {
        guard let index = questions.index(where: {$0.question == question.question}) else { return }
        var qa = questions[index]
        qa.rightAnswers += 1
        if qa.rightAnswers >= 3 {
            questions.remove(at: index)
        } else {
            questions[index] = qa
        }
    }
}