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 从数组中删除一些元素_Arrays_Swift_String_Swift3 - Fatal编程技术网

Arrays 从数组中删除一些元素

Arrays 从数组中删除一些元素,arrays,swift,string,swift3,Arrays,Swift,String,Swift3,在以下情况下,我需要从数组中删除一些元素。我有一个包含如下元素的数组: [ "white & blue", "white & red", "white & black", "blue & white", "blue & red", "blue & black", "red & white", "red & blue", "red & black", "black & white"

在以下情况下,我需要从数组中删除一些元素。我有一个包含如下元素的数组:

[
    "white & blue", "white & red", "white & black", 
    "blue & white", "blue & red", "blue & black", 
    "red & white", "red & blue", "red & black", 
    "black & white", "black & blue", "black & red", 
    "white", "blue", "red", "black", 
    "white & blue & red & black"
] 
我需要将其转换为仅包含以下元素的数组:

[
    "white & blue", "white & red", "white & black", 
    "blue & red", "blue & black", 
    "red & black", 
    "white", "blue", "red", "black", 
    "white & blue & red & black"
]
在上面的示例中,元素
“白色和蓝色”
“蓝色和白色”
需要被视为相同,只保留其中一个,删除另一个


我还没有找到一种有效的方法。如何做到这一点?

对于描述为“白色和蓝色”和“蓝色和白色”元素的相等性,需要将其视为相同的元素,为
集定义的相等性可以很好地工作

准备:

extension String {
    var colorNameSet: Set<String> {
        let colorNames = self.components(separatedBy: "&")
            .map {$0.trimmingCharacters(in: .whitespaces)}
        return Set(colorNames)
    }
}

"white & blue".colorNameSet == "blue & white".colorNameSet //== true

对于描述为“白色和蓝色”和“蓝色和白色”元素的相等性,需要将其视为相同的,为
Set
定义的相等性工作良好

准备:

extension String {
    var colorNameSet: Set<String> {
        let colorNames = self.components(separatedBy: "&")
            .map {$0.trimmingCharacters(in: .whitespaces)}
        return Set(colorNames)
    }
}

"white & blue".colorNameSet == "blue & white".colorNameSet //== true

这有太多的部分和太广泛,因为它目前是。在较高的层次上,您需要解析字符串,标准化结果输出,过滤掉重复项,并将结果返回到此原始格式。你应该找出这些问题中的哪一个会给你带来麻烦,并就这些问题提出个人问题。这些问题有太多的部分,而且与目前的情况相比过于宽泛。在较高的层次上,您需要解析字符串,标准化结果输出,过滤掉重复项,并将结果返回到此原始格式。你应该找出这些问题中的哪一个给你带来了麻烦,并就这些问题提出个人问题。非常感谢,这非常有效。非常感谢,这非常有效。