text = ["lorem", "ipsum", "dolor", "sit", "amet"]
随机后:
wrongText = ["lorem", "ipsum", "amet", "sit", "dolor"]
我怎么知道哪个词放错了地方? 在上面的例子中,我只需要“amet”和“dolor”
答案 0 :(得分:4)
尝试类似:
let changed = zip(text,wrongText).filter { $0 != $1 }.map { $0.0 }
这将配对两个数组的元素并输出不匹配的对。 map
将提取每个不匹配对的第一个单词,因为您只需要它。
答案 1 :(得分:0)
var changed = [String]()
for i in 0..<text.count {
if text[i] != wrongText[i]{
changed.append(wrongText[i])
}
}
答案 2 :(得分:0)
利用flatMap
作为nil过滤器的较短版本:
let changed = zip(text, wrongText).flatMap { $0 != $1 ? $0 : nil }