js之字典的学习和使用

js之字典学习和使用

字典 是一种以键-值对形式存储数据的数据结构,比如:名字-电话号码,通过名字就能找到对应的电话号码,名字就是键(key),电话号就是值(value)。

字典中的键,是值在字典中的索引。

对于javascript来说,字典类(Dictionary)的基础是Array类,js中的Array既是一个数组,同时也是一个字典。

以下是通过3个示例来加深字典这种数据结构的理解和使用。

示例一:字典的创建和使用
    var dic = {c:4, a:2, d:3, b:1}; // 定义一个字典

    console.log("输出最初的字典元素: "); 
    for(var key in dic){
        console.log("key: " + key + " ,value: " + dic[key]);
    }

    console.log("字典元素按key值排序: ");
    var res = Object.keys(dic).sort(); 
    for(var key in res){
        console.log("key: " + res[key] + " ,value: " + dic[res[key]]);
    }

    console.log("字典元素按value值排序: ");
    var res2 = Object.keys(dic).sort(function(a,b){ return dic[a]-dic[b]; });
    for(var key in res2){
        console.log("key: " + res2[key] + " ,value: " + dic[res2[key]]);
    }

运行结果:

这里写图片描述

示例二: 简单的字典的操作
    var dic = new Array(); //定义一个字典

    dic['one'] = '1';      // 添加字典的元素( key:value)
    dic['three'] = '3';
    dic['two'] = '2';
    dic['8'] = 'seven';
    dic['five'] = '5';
    dic['four'] = '4';
    dic['9'] = 'nine';
    dic['six'] = '6';
    dic['7'] = 'eight';
    for(var key in dic){ // 输出字典元素,如果字典的key是数字,输出时会自动按序输出
        console.log(key + ' : ' + dic[key]);
    }

运行结果:

这里写图片描述

    var res1 = Object.keys(dic).sort(); // 字典元素按key值排序
    for(var key in res1){
        console.log(res1[key] + " : " + dic[res1[key]]);
    }

运行结果:

这里写图片描述

    var res2 = Object.keys(dic).sort(function(a,b){ return dic[a]-dic[b]; }); // 字典元素按value值排序
    for(var key in res2){ 
        console.log(res2[key] + ' : ' + dic[res2[key]]);
    }

运行结果:

这里写图片描述

    delete dic['one'];    // 删除元素(方法一)
    delete dic['six'];
    for(var key in dic){ 
        console.log(key + ' : ' + dic[key]);
    }

运行结果:

这里写图片描述

    delete dic.three;   // 删除元素(方法二)   
    delete dic.four;
    for(var key in dic){ 
        console.log(key + ' : ' + dic[key]);
    }

运行结果:

这里写图片描述

注意:第二种方式删除时,在Chrome浏览器测试,不能删除key为数字的情况,比如以下操作就会报错:

    delete dic.7; // 报错 : Uncaught SyntaxError: Unexpected number
    delete dic.'7'; // 报错 : Uncaught SyntaxError: Unexpected string
示例三: 更加全面的字典操作和使用
    function add(key, value){   // 添加字典的键值(key:value)
        this.dataStore[key] = value;
    }
    function show(){            //显示字典中的键值(key:value)
        for(var key in this.dataStore){
            console.log(key + " : " + this.dataStore[key]);
        }
    }
    function find(key){         // 根据键(key)查找对应的值(value),返回值value
        return this.dataStore[key];
    }
    function remove(key){       // 根据键(key)删除对应的值(value)
        delete this.dataStore[key];
    }
    function count(){           // 计算字典中的元素个数
        var n = 0;
        for(var key in Object.keys(this.dataStore)){
            ++n;
        }
        return n;
    }
    function kSort(){           // 字典按值(value)排序,并输出排序后的结果
        var dic = this.dataStore;
        var res = Object.keys(dic).sort();
        for(var key in res ){
            console.log(res[key] + " : " + dic[res[key]]);
        }
    }
    function vSort(){           // 字典按值(value)排序,并输出排序后的结果
        var dic = this.dataStore;
        var res = Object.keys(dic).sort(function(a,b){ 
            return dic[a]-dic[b]; 
        });
        for(var key in res ){
            console.log(res[key] + " : " + dic[res[key]]);
        }
    }
    function clear(){           // 清空字典内容
        for(var key in this.dataStore){
            delete this.dataStore[key];
        }
    }
    function Dictionary(){              
        this.dataStore = new Array(); // 定义一个数组,保存字典元素
        this.add = add;               // 添加字典内容(key:value)
        this.show = show;             // 显示字典中的键值
        this.find = find;             // 根据键(key)查找并返回对应的值(value)
        this.remove = remove;         // 删掉相对应的键值
        this.count = count;           // 计算字典中的元素的个数
        this.kSort = kSort;           // 按键(key)排序
        this.vSort = vSort;           // 按值(value)排序
        this.clear = clear;           // 清空字典内容
    }

    var dic = new Dictionary();       // 构造字典类
    dic.add('one', '1');              // 添加字典的元素( key:value)
    dic.add('three', '3');
    dic.add('two', '2');
    dic.add('8', 'seven');
    dic.add('five', '5');
    dic.add('four', '4');
    dic.add('9', 'nine');
    dic.add('six', '6');
    dic.add('7', 'eight');

    dic.show(); // 显示字典中的键值对

运行结果:

这里写图片描述

    console.log("one: " + dic.find("one"));  // 通过键(key)查找对应的值(value)
    console.log("7: " + dic.find("7"));  

运行结果:

这里写图片描述

    dic.remove("9");          // 删除字典中的键值对

运行结果:

这里写图片描述

    console.log(dic.count()); // 统计字典中的元素的个数 

运行结果:

这里写图片描述

    dic.kSort();  // 按key排序

运行结果:

这里写图片描述

    dic.vSort();  // 按value排序

运行结果:

这里写图片描述

    dic.clear();  // 清空所有字典的元素

那么,有关字典这种数据结构的学习和使用就到此了,如果在后续使用到有加深的地方,再补充吧~~

浏览器不调用vue数据字典可能有以下几个原因: 1. 未正确引入Vue库:在使用Vue框架时,需要在HTML页面中正确引入Vue库,否则浏览器无法识别调用Vue相关的代码。 2. 数据字典未在Vue实例中注册:Vue中的数据字典通常通过Vue的data属性来定义管理,然后在Vue实例中进行注册。如果没有将数据字典注册到Vue实例中,浏览器无法访问调用它们。 3. 数据字典命名错误或作用域问题:可能是因为数据字典的命名与调用时的不一致,或者数据字典定义在Vue实例范围之外,导致浏览器无法正确调用。 4. 调用方式错误:在模板中使用数据字典时,应该通过Vue提供的指令或表达式来调用显示数据字典的值。如果调用方式不正确,浏览器可能无法正确显示数据字典的值。 为了解决这个问题,可以按照以下步骤进行检查修复: 1. 确保正确引入Vue库:在HTML页面中检查是否正确引入Vue库的脚本文件,例如在头部或底部添加<script src="vue.js"></script>。 2. 检查数据字典的注册使用:确认数据字典是否在Vue实例中正确注册,并在需要使用的地方正确调用。可以使用Vue开发者工具等调试工具查看数据字典的值是否正确。 3. 检查命名作用域:确保数据字典的命名无误且与调用时一致,并且在正确的作用域内定义注册数据字典。 4. 学习使用正确的调用方式:学习使用Vue的指令、表达式等方式来调用显示数据字典的值,确保调用方式正确。 总结:浏览器不调用vue数据字典可能是由于引入Vue库失败、数据字典未注册、命名错误、作用域问题或调用方式错误等原因造成。通过检查修复这些可能导致问题的地方,可以解决浏览器不调用vue数据字典的问题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

英子的搬砖日志

您的鼓励是我创作的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值