美文网首页
数据结构-集合

数据结构-集合

作者: AAA前端 | 来源:发表于2021-07-22 21:12 被阅读0次

集合

集合通常是由一组无序的, 不能重复的元素构成。

  • 可以看成一种特殊的数组。
    • 特殊之处在于里面的元素没有顺序, 也不能重复
    • 没有顺序意味着不能通过下标值进行访问, 不能重复意味着相同的对象在集合中只会存在一份.

ES6 中的 Set 其实就已经实现了集合

    // 封装集合的构造函数
    function Set() {
        // 使用一个对象来保存集合的元素
        this.items = {}

        // 集合的操作方法
        // 判断集合中是否有某个元素
        Set.prototype.has = function (value) {
            return this.items.hasOwnProperty(value)
        }

        // 向集合中添加元素
        Set.prototype.add = function (value) {
            // 1.判断集合中是否已经包含了该元素
            if (this.has(value)) return false

            // 2.将元素添加到集合中
            this.items[value] = value
            return true
        }

        // 从集合中删除某个元素
        Set.prototype.remove = function (value) {
            // 1.判断集合中是否包含该元素
            if (!this.has(value)) return false

            // 2.包含该元素, 那么将元素删除
            delete this.items[value]
            return true
        }

        // 清空集合中所有的元素
        Set.prototype.clear = function () {
            this.items = {}
        }

        // 获取集合的大小
        Set.prototype.size = function () {
            return Object.keys(this.items).length

            /*
            考虑兼容性问题, 使用下面的代码
            var count = 0
            for (var value in this.items) {
                if (this.items.hasOwnProperty(value)) {
                    count++
                }
            }
            return count
            */
        }

        // 获取集合中所有的值
        Set.prototype.values = function () {
            return Object.keys(this.items)

            /*
            考虑兼容性问题, 使用下面的代码
            var keys = []
            for (var value in this.items) {
                keys.push(value)
            }
            return keys
            */
        }
    }

相关文章

网友评论

      本文标题:数据结构-集合

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