8 【集合】js集合

2019-11-13  本文已影响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());
上一篇 下一篇

猜你喜欢

热点阅读