我正在进行的api调用为我提供了两个不同元素中的重复信息,并且我想在UITableView中显示响应之前从一个元素中删除重复信息。 我到处都看了很长时间。您如何执行以下操作?:
var array1 = [“你好”,“如何摆脱”,“是”,“你是我”]
let array2 = [“ get”,“ rid”,“ of”,“ me”]
我尝试了许多其他事情: array1 = array1.map {!array2.contains($ 0)}
要获取数组:
array1 = [“您好”,“如何”,“是”,“您?”]
答案 0 :(得分:0)
使用zip
和map
的可能解决方案。
zip
通过创建元组将两个数组组合在一起,map
删除第二个数组中的字符串以及带有正则表达式的第一个数组中的前导空格字符。
let array1 = ["Hello get", "How rid", "Are of", "You? me"]
let array2 = ["get", "rid", "of", "me"]
let result = zip(array1, array2).map{ $0.0.replacingOccurrences(of: "\\s" + $0.1, with:"", options:.regularExpression) }
// ["Hello", "How", "Are", "You?"]
答案 1 :(得分:0)
我的答案要长一点,但是它将涵盖如果array2中的任何单词存在于array1中的多个单词中的情况
var cleaned = [String]()
array2.forEach( {word in
let subArray = array1.filter( {$0.contains(word) })
subArray.forEach( { found in
var temp = found
temp.removeSubrange(found.range(of: word)!)
cleaned.append(temp.trimmingCharacters(in: .whitespaces))
})
})