Swift数组Array中移除重复的元素最好最方便的方法

版权声明:本文为陈云峰(www.swifty.cc)原创文章,未经允许不得转载。 https://blog.csdn.net/feosun/article/details/82114653

有几种方法可以从数组中删除重复的项目,但最简单的方法之一是在Array上使用以下扩展:

extension Array where Element: Hashable {
    func removingDuplicates() -> [Element] {
        var addedDict = [Element: Bool]()

        return filter {
            addedDict.updateValue(true, forKey: $0) == nil
        }
    }

    mutating func removeDuplicates() {
        self = self.removingDuplicates()
    }
}

这提供了两种方法:一种叫removeDuplicates(),它返回一个删除了重复项的数组,另一种叫做removeDuplicates(),可以在运行时更改数组。

该方法使用filter()和字典:当你在字典上调用updateValue()时,如果键是新的,则返回nil,因此我们可以使用它来确定哪些项是唯一的。

例如:

let numbers = [1, 5, 3, 4, 5, 1, 3]
let unique = numbers.removingDuplicates()

此方法支持iOS 8.0 以上版本。如果你有更好地方法,欢迎留言。

猜你喜欢

转载自blog.csdn.net/feosun/article/details/82114653
今日推荐