How do I check in Swift if two arrays contain the same elements regardless of the order in which those elements appear in?

前端 未结 8 1210
臣服心动
臣服心动 2020-12-02 22:20

Let\'s say there are two arrays...

var array1 = [\"a\", \"b\", \"c\"]
var array2 = [\"b\", \"c\", \"a\"]

I\'d like the result of the compar

8条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-02 22:53

    Create function to compare them:

    func containSameElements(var firstArray firstArray: [String], var secondArray: [String]) -> Bool {
        if firstArray.count != secondArray.count {
            return false
        } else {
            firstArray.sortInPlace()
            secondArray.sortInPlace()
            return firstArray == secondArray
        }
    }
    

    Then:

    var array1 = ["a", "a", "b"]
    var array2 = ["a", "b", "a"]
    
    var array3 = ["a", "b", "c"]
    var array4 = ["b", "c", "a", "d"]
    
    print(containSameElements(firstArray: array1, secondArray: array2)) //true
    print(containSameElements(firstArray: array3, secondArray: array4)) //false
    print(array1) //["a", "a", "b"]
    print(array2) //["a", "b", "a"]
    print(array3) //["a", "b", "c"]
    print(array4) //["b", "c", "a", "d"]
    

提交回复
热议问题