美文网首页
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