js中字典的使用

本文介绍了JavaScript中如何使用字典,字典基于Array类,提供了键-值对的存储方式。内容涵盖字典的定义、遍历、删除元素及额外操作,强调了由于JavaScript字典基于Array,部分字典功能需要自行实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字典是一种以键-值为一队存储的数据结构,key-value

key相当于这个value在字典中的索引,所以key不允许重复,查找也会非常快(类似于哈希表)

在JavaScript中字典的基础是Array类,Array在JavaScript中既是数组也是字典

1.定义字典


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'

也可以直接定义
dic={'a':1,'b':2,'c':3}

2.遍历字典

for (key in dic){
    console.log(key+":"+dic[key]);
}

3.删除字典元素,删除都是删除一对key-value

//方法一
//双引号和单引号是一样的,只是结合使用的时候需要注意
delete dic["one"];


//方法二
delete dic.one


//但是在删除key为数字的时候,有的浏览器会报错,如Chrome

4.更多操作,因为JavaScript中字典是基于Array的,因此有些字典的操作需要我们自己定义

<script>
    function add(key, value){   // 添加字典的键值(key:value)
        this.dataStorege[key] = value;
    }
    function display(){            //显示字典中的键值(key:value)
        for(var key in this.dataStorege){
            console.log(key + " : " + this.dataStorege[key]);
        }
    }
    function find(key){         // 根据键(key)查找对应的值(value),返回值value
        return this.dataStorege[key];
    }
    function remove(key){       // 根据键(key)删除对应的值(value)
        delete this.dataStorege[key];
    }
    function count(){           // 计算字典中的元素个数
        var n = 0;
        for(var key in Object.keys(this.dataStorege)){
            ++n;
        }
        return n;
    }
    function kSort(){           // 字典按值(value)排序,并输出排序后的结果
        var dic = this.dataStorege;
        var res = Object.keys(dic).sort();
        for(var key in res ){
            console.log(res[key] + " : " + dic[res[key]]);
        }
    }
    function vSort(){           // 字典按值(value)排序,并输出排序后的结果
        var dic = this.dataStorege;
        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.dataStorege){
            delete this.dataStorege[key];
        }
    }
    function Dictionary(){              
        this.dataStorege = 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);
    dic.display()
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值