8 【集合】js集合

闹鬼的很,昨天本来是写了这个集合的,结果检测死活报错,说我constructor用法不对,不用class写的时候则显示没有hasOwnProperty 函数...昨天各种翻书上网求助,都不行。结果今天打开电脑改都没改试了一下,不报错了,一遍成功....绝了

'use strict'

// 集合
// 集合不能重复元素
class Set {
    constructor () {
        this.items = {};
    }

    // 确认是否有值,有则返回true,无则返回false
    has (element) {
        return this.items.hasOwnProperty(element)
    }

    // 向集合添加值
    add (element) {
        if (!this.has(element)) {
            this.items[element] = element
            return true
        } else {
            return null
        }
    }

    // 移除值
    remove (element) {
        // 查看该位置是否有元素
        // 有则true 无则false
        if (this.has(element)) {
            delete this.items[element]
            return '移除成功'
        }
        return '移除失败'
    }

    // 移除所有值
    clear () {
        this.items = {};
        return '清除成功!'
    }

    // 返回大小1
    size () {
        return Object.keys(this.items).length
    }

    // 返回所有值
    values () {
        return Object.keys(this.items);
    }
}

// 测试
let set = new Set ()
set.add(1)
set.add(2)
set.add(3)
set.add(4)
set.add(5)
console.log('集合大小为:' + set.size());
console.log('集合移除1:' + set.remove(1));
console.log('集合大小为:' + set.size());
console.log('1确认是否有值:' + set.has(1));
console.log('2确认是否有值:' + set.has(2));
console.log('展示所有值:' + set.values(2));
console.log('清除所有值:' + set.clear());
console.log('集合大小为:' + set.size());
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容