iOS Swift如何从另一个数组的一部分字符串中删除数组中的字符串

时间:2018-10-24 20:16:29

标签: arrays swift

我正在进行的api调用为我提供了两个不同元素中的重复信息,并且我想在UITableView中显示响应之前从一个元素中删除重复信息。 我到处都看了很长时间。您如何执行以下操作?:

var array1 = [“你好”,“如何摆脱”,“是”,“你是我”]

let array2 = [“ get”,“ rid”,“ of”,“ me”]

我尝试了许多其他事情: array1 = array1.map {!array2.contains($ 0)}

要获取数组:

array1 = [“您好”,“如何”,“是”,“您?”]

2 个答案:

答案 0 :(得分:0)

使用zipmap的可能解决方案。

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))
    })
})