2017-03-02 44 views
-1

我的应用程序的用户将被测试他们的英语。他们将通过在该单词旁边放置复选标记来从列表中选择不同的单词。他们只想选择名词的单词。例如,如果他们正确选择了5个,我该如何向他们展示50%的分数。我认为我需要根据用户的输入过滤字典值。用户的输入是一个数组。对此进行编码的最佳方式是什么?Swift 3 - 用字典值匹配用户输入

回答

0

试试下面的代码: - 100%的工作

 let myDictionary : [String : Any] = 
     [ "Nouns":["One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten"], 
"Verbs":["Eat","play","dance","walk","run","sing","read","write","go","come"]] 
    var myUserSelectedArray:[String] = ["One","come","Three","go","Five","x","Six","x","x","Ten"]; 

    let myNounArray = myDictionary["Nouns"] as? [String]; 
    let myVerbArray = myDictionary["Verbs"] as? [String]; 
    let set1:Set<String> = Set(myUserSelectedArray); 
    let set2:Set<String> = Set(myNounArray!); 
    let set3:Set<String> = Set(myVerbArray!); 
    let scroeInNoun = set1.intersection(set2).count; 
    let scroeInVerb = set1.intersection(set3).count; 
    print ("score in Verb \((scroeInVerb * 100)/set2.count) %") 
    print ("score in noun \((scroeInNoun * 10)/set3.count) %") 
    let finalScore = (scroeInNoun + scroeInVerb) * 100/((myNounArray?.count)! + (myVerbArray?.count)!) 
    print ("final score in noun \(finalScore) %") 

如果对你有用请接受答案

+0

谢谢!伟大的代码! – salanthonyc

+0

是使用简单的数学公式(正确答案* 100)/总问问题 –