美文网首页
Swift-Array数组去除重复元素

Swift-Array数组去除重复元素

作者: 文子飞_ | 来源:发表于2020-11-01 22:19 被阅读0次

方法一:

class func getModels() -> Array<MultTableModel> {
        var tempArrays = Array<MultTableModel>()
        for i in 0...20 {
            let model = MultTableModel.modelWith(title: "title-哈哈😃 + \(i)", subTitle: "subTitle-哈哈😃 + \(i)")
            model.id = i
            if i == 8 || i == 9 || i == 10 {
                tempArrays.append(model)
            }
            tempArrays.append(model)
        }
        
        // tempArrays去重复元素
        var tempModel: MultTableModel?
        var sameArrays: [MultTableModel] = []
        // 1、tempArrays查找相同
        for item in tempArrays {
            if item === tempModel {
                sameArrays.append(item)
            }
            tempModel = item
        }
        // 2、tempArrays移除相同
        for sameItem in sameArrays {
            let sameIndex = tempArrays.firstIndex { (tempItem) -> Bool in
                return sameItem === tempItem
            }
            if let deleteIndex = sameIndex {
                tempArrays.remove(at: deleteIndex)
            }
        }
        return tempArrays
    }

方法二:数组里必须是Struct结构体

struct MultTableModel: Hashable {
    
    var title: String?
    var subTitle: String?
    var id = 0
    var isSelect: Bool = false
    
    init(title: String, subTitle: String) {
        self.title = title
        self.subTitle = subTitle
    }

    static func modelWith(title: String, subTitle: String) -> MultTableModel {
        return self.init(title: title, subTitle: subTitle)
    }
    
    static func getModels() -> Array<MultTableModel> {
        var tempArrays = Array<MultTableModel>()
        for i in 0...20 {
            var model = MultTableModel.modelWith(title: "title-哈哈😃 + \(i)", subTitle: "subTitle-哈哈😃 + \(i)")
            model.id = i
            if i == 8 || i == 9 || i == 10 {
                tempArrays.append(model)
            }
            tempArrays.append(model)
        }
        
        tempArrays.removeDuplicates()
        
        return tempArrays
    }
    
}

//数组去重
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()
    }
}

相关文章

  • Swift-Array数组去除重复元素

    方法一: 方法二:数组里必须是Struct结构体

  • iOS 从数组随机取元素

    数组随机取元素 — 不考虑重复情况 数组随机取元素 — 去除重复元素

  • 数组

    1. 去除数组中的重复元素 题目 已知一个已经排序的数组,去除数组中的重复元素,返回数组的长度。 思路 使用双指针...

  • 数组去重

    请看下面数组,其中的元素有多次重复,请写一个函数来实现去除数组中重复的元素。 使用with改进 对象去除法 通过正...

  • js手写数组去重

    javascript数组中若存在重复元素,此时我们需要将重复的元素去除,下面我讲介绍一下几种方法进行数组元素去重 ...

  • 去除已排序数组中的重复元素

    题目描述 给定一个已排序的数组,去除数组中的重复元素,只保留一个重复的元素,并且返回新的数组长度。 要求 不要给数...

  • 2018-01-18

    数组去重 去除数组中重复的元素的原理:查看该元素在当前数组中是否存在,若存在,则跳过该元素,对其不做任何处理;若不...

  • 2018-02-06

    1、去除数组中重复元素 ```` let arr=['a','b','c','d','a','e','b'] le...

  • 去除数组重复元素

    var arr = [1,2,2,3,5,4,8,6,4,2,47,5,9,3,20,3]; //将数组转为对象,...

  • 数组中去除重复元素

网友评论

      本文标题:Swift-Array数组去除重复元素

      本文链接:https://www.haomeiwen.com/subject/alouvktx.html