如何根据其他数组删除值数组。
示例: -
Type(Int)
var arrayOne = [1,2,3,4,5,6,7,8]
var arrayTwo = [1,2,4,5,6,7]
我想要下一个结果: -
结果= [3,8]
答案 0 :(得分:0)
用户设置简单结果
var arrayOne = [1,2,3,4,5,6,7,8]
var arrayTwo = [1,2,4,5,6,7]
let set1:Set<Int> = Set(arrayOne)
let set2:Set<Int> = Set(arrayTwo)
let set3 = set1.symmetricDifference(set2)
输出
{3,8}
答案 1 :(得分:0)
您可以将它们转换为集合。
var arrayOne = [1,2,3,4,5,6,7,8]
var arrayTwo = [1,2,4,5,6,7]
let set1:Set<String> = Set(arrayOne)
let set2:Set<String> = Set(arrayTwo)
使用 ExclusiveOr 执行此操作。
//Swift 2.0
set1.exclusiveOr(array2) // result = {3,8}
//Swift 3.0
set1.symmetricDifference(set2) // result = {3,8}
此链接可能对您有用:Set operations (union, intersection) on Swift array? 也可能复制为@ user3589771说。
答案 2 :(得分:0)
使用以下工作代码 -
let arrayOne = [1,2,3,4,5,6,7,8]
let arrayTwo = [1,2,4,5,6,7]
var result = [Int]()
for value in arrayOne
{
if !arrayTwo.contains(value)
{
result.append(value)
}
}
答案 3 :(得分:0)
您可以使用以下选项。
//选项1 - 使用设置
let arrayOne : Set = [1,2,3,4,5,6,7,8]
let arrayTwo : Set = [1,2,4,5,6,7]
var result = arrayOne.symmetricDifference(arrayTwo)
print(result) // {3,8}
//选项2 - 使用数组
var result1 = [Int]()
for value in arrayOne
{
if !arrayTwo.contains(value)
{
result1.append(value)
}
}
print(result1) // {3,8}