美文网首页
javaScript简单实现字典

javaScript简单实现字典

作者: wxyzcctn | 来源:发表于2020-12-05 11:54 被阅读0次

    JavaScript的字典通过Set进行了实现,关于Set的详情请看MDN文档。
    以下是自己通过JavaScript简单的实现

    function Set(){
        // 函数中的私有变量
        var items = {};
        // 判断是否有某个属性,使用的是in方法(可以包括继承的属性),而不是使用的Object.hasOwnProperty()
        this.has = function(key){
            return key in items;
        };
        // 设置属性和值
        this.set = function(key, value){
            items[key] = value;
        };
        // 获取某个属性对应的值
        this.get = function(key){
            return this.has(key) ? items[key] : undefined;
        };
        // 删除某个属性,此时需要判断items中是否有这个属性,有就删除并返回true,没有返回false
        this.remove = function(key){
            if(this.has(key)){
                delete items[key];
                return true;
            }
            return false;
        };
        // 获取所有属性的值,返回的是一个数组
        this.values = function(){
            var values = [];
            for (const key in items) {
                // for in 循环会将items所继承的属性也遍历到,为了防止得到遍历的属性,加入如下判断进行过滤
                if (this.has(key)) {
                    values.push(items[key])
                }
            }
            return values;
        };
        // 获取所有的属性及其值
        this.getItems = function(){
            return items;
        }
    }
    

    var dictionary = new Set();
    dictionary.set('李四', 'lisi');
    dictionary.set('王五', 'wangwu');

    dictionary.get('王五') // "wangwu"
    dictionary.get('李四') // "lisi"
    dictionary.getItems() // {李四: "lisi", 王五: "wangwu"}
    dictionary.values() // ["lisi", "wangwu"]
    dictionary.remove('王五') // true
    dictionary.values() // ["lisi"]

    相关文章

      网友评论

          本文标题:javaScript简单实现字典

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