美文网首页
8 【集合】js集合

8 【集合】js集合

作者: 狩秋之人 | 来源:发表于2019-11-13 18:35 被阅读0次

    闹鬼的很,昨天本来是写了这个集合的,结果检测死活报错,说我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());
    

    相关文章

      网友评论

          本文标题:8 【集合】js集合

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