Как сравнить два массива и удалить совпадающие элементы из одного массива в Swift iOS - PullRequest
0 голосов
/ 28 марта 2020

У меня есть два массива.

let array1 = ["Lahari", "Vijayasri"];
let array2 = ["Lahari", "Vijayasri", "Ramya", "Keerthi"];

Я хочу удалить элементы array1 из array2 и вывести окончательный массив, подобный

result array = ["Ramya", "Keerthi"]

Ответы [ 4 ]

1 голос
/ 28 марта 2020
extension Array where Element: Hashable {
func difference(from other: [Element]) -> [Element] {
    let thisSet = Set(self)
    let otherSet = Set(other)
    return Array(thisSet.subtracting(otherSet))
}

}

var array1 = ["Lahari", "Vijayasri"]
let array2 = ["Lahari", "Vijayasri", "Ramya", "Keerthi"]
let a = array2.difference(from: array1) // ["Ramya", "Keerthi"]
0 голосов
/ 28 марта 2020

Только взять конец.

array2[array1.count...]
0 голосов
/ 28 марта 2020

Paulw11 ответ работает отлично. Но если порядок в массиве важен, вы можете сделать это:

let reuslt = array2.filter { !array1.contains($0) }
0 голосов
/ 28 марта 2020

Преобразование массивов в Set с и использование subtract - простой и эффективный метод:

let array1 = ["Lahari", "Vijayasri"]
let array2 = ["Lahari", "Vijayasri", "Ramya", "Keerthi"]

let resultArray = Array(Set(array2).subtracting(Set(array1)))

Если важно поддерживать порядок array2, вы можете использовать filter с набор -

let compareSet = Set(array1)

let resultArray = array2.filter { !compareSet.contains($0) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...