Arrays Swift 3-检查,有多少相同的元素数组内容

Arrays Swift 3-检查,有多少相同的元素数组内容,arrays,swift,Arrays,Swift,我有一个[Int]数组,我需要检查所有的元素,它们与其他元素的值不相同。我想插入到新数组中的那些不相同的元素 var spojeni1 = [1, 1, 2, 3, 4, 4] // Here it is values 2,3 var NewArray = [Int]() for i in spojeni1 { if { // the value hasn't another identical value in the array NewArray.append(i)

我有一个[Int]数组,我需要检查所有的元素,它们与其他元素的值不相同。我想插入到新数组中的那些不相同的元素

var spojeni1 = [1, 1, 2, 3, 4, 4] // Here it is values 2,3
var NewArray = [Int]()
for i in spojeni1 {
    if { // the value hasn't another identical value in the array
         NewArray.append(i)
   }
}

希望清楚,谢谢

我会使用两套:

var seenOnce: Set<Int> = []
var seenMorethanOnce: Set<Int> = []
let input = [1, 1, 2, 3, 4, 4]

for number in input
{
    if seenMorethanOnce.contains(number)
    {
        // Skip it since it's already been detected as a dupe.
    }
    else if seenOnce.contains(number)
    {
        // We saw it once, and now we have a dupe.
        seenOnce.remove(number)
        seenMorethanOnce.insert(number)
    }
    else
    {
        // First time seeing this number.
        seenOnce.insert(number)
    }
}
var seenOnce:Set=[]
var seenMorethanOnce:Set=[]
让输入=[1,1,2,3,4,4]
用于输入中的数字
{
如果SeenMothanonce.contains(数字)
{
//跳过它,因为它已被检测为重复。
}
如果SEENNCE.contains(编号),则为else
{
//我们看过一次,现在我们有了一个骗局。
请参见当前删除(编号)
请参见插入(数字)
}
其他的
{
//第一次看到这个号码。
参见当前插入(编号)
}
}

当for循环完成时,seenOnce集合将包含您的值,如果您愿意,您可以轻松地将其转换为数组。

这可以在一行中完成:

let numbers = [1, 1, 2, 3, 4, 4] // Here it is values 2,3

let uniques = Set(numbers).filter{ (n) in numbers.filter{$0==n}.count == 1 }
更新

使用Swift 4,您还可以使用字典构造函数:

let uniques = Dictionary(grouping:numbers){$0}.filter{$1.count==1}.map{$0.0}

很清楚。你在这里搜索过类似的问题吗?今年似乎至少有3-5个人问过类似的问题。我还没有在@dfdSearch发现这个问题。可能的单词包括“Swift”,“数组内容”相同。这是“Swift相同元素”中的一个。我的下一次搜索是在这个网站上。单词是“Swift数组相同删除”。这里有一个问题,有23个答案:。阅读它们,全部阅读。非常有用的代码