Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何在swift中从对象数组中消除重复对象_Arrays_Swift - Fatal编程技术网

Arrays 如何在swift中从对象数组中消除重复对象

Arrays 如何在swift中从对象数组中消除重复对象,arrays,swift,Arrays,Swift,我有两个来自web服务的数组,我需要找出Array2是否具有与Array1相同的对象。 为此,我使用以下代码: var arr1 = [CustomObject]() var arr2 = [CustomObject]() var arr3 = [CustomObject]() var arr4 = [CustomObject]() self.arr3 = self.arr1 + self.arr2 //concatenate two arrays self.arr4 = Array(

我有两个来自web服务的数组,我需要找出Array2是否具有与Array1相同的对象。 为此,我使用以下代码:

var arr1 = [CustomObject]()
var arr2 = [CustomObject]()
var arr3 = [CustomObject]()
var arr4 = [CustomObject]()


self.arr3 = self.arr1 + self.arr2  //concatenate two arrays 
self.arr4 =  Array(Set(arr3))   // find out uniq values

//  below is the extension

extension Array where Element : Hashable {
var unique: [Element] {
    var uniqueValues: [Element] = []
    forEach { item in
        if !uniqueValues.contains(item) {
            uniqueValues += [item]
         }
       }
      return uniqueValues
    }
 }
但它在“Array(Set(arr3))”上面的行上显示错误
错误是:-若要为设置添加值,请尝试以下操作:

var arr1 = ["A","B","C"]
var arr2 = ["A","B","C"]

if Set(arr1).symmetricDifference(arr2).isEmpty {
    print("The Arrays Match")
}
概述:
  • 为了让集合存储自定义类/结构,自定义类/结构需要符合
    Hashable
    protocol
    和间接
    equalable
    协议
  • 下面给出了一个使用
    结构的示例,您也可以使用类
代码:
什么错误?
CustomObject
是否可哈希
?有关哈希值的错误我的CustomObject有名称、Id、摘要。。。等等。我需要识别具有类似ID的对象。如果您在问题中包含错误消息,会更有帮助。请查看关于“Hashable+Swift”的信息,查看如何执行。简而言之,您必须帮助
(NS)Set
了解如何定义unicity<代码>(NS)设置
使用哈希协议执行此操作。因此,将“Hashable compability”添加到类
CustomObject
。我已经使用了上面的方法,但是如何在“self.arr4=Array(Set(arr3))”中指定它,
self.arr4=Array(Set(arr3))
只需使
CustomObject
Hashable
struct CustomObject : Hashable{
    
    var something : Int //It is just an example, this could be any type, but some how you should find a way to compute the hash value.

    //MARK: Hashable
    var hashValue: Int {
        
        return something
    }
}

//MARK: CustomObject - Equatable
func ==(lhs: CustomObject, rhs: CustomObject) -> Bool {

    return lhs.something == rhs.something
}