8.字典结构
认识字典
数组-集合-字典是几乎编程语言都会默认提供的数据类型
在JavaScript中默认提供了数组,ES6中增加了集合和字典,在上一章中,我们自己通过对象实现了一下集合。
本章,我们还是基于对象实现一下字典。
生活中的字典
中文字典我们可以根据拼音去查找汉字,并且找到汉字对应的词以及解释
英文字典也是类似,根据英文字母找到对应的单词,再查看其翻译和应用场景
字典有什么特点呢?
字典的主要特点是一一对应的关系
比如保存一个人的信息,在合适的情况下取出这些信息
使用数组的方法:[18,"Coderwhy",1.88] 可以通过下边值取出信息
使用字典的方式:{"age":18."name":"Coderwhy","height":1.88} 可以通过key取出value
另外字典中的key是不可以重复的,而Value可以重复,并且字典中的key是无序的
深入字典
字典和映射的关系:
有些编程语言中称这种映射关系为字典,因为它确实和生活中的字典比较相似。(比如Swift中Dictionary,Python中的dict)
有些编程语言中称这种映射关系为Map,注意Map在这里不要翻译成地图,而是翻译成映射。(比如Java中就有HashMap&TreeMap等)
字典和数组:
字典和数组对比的话,字典可以非常方便的通过key来搜索对用的value,key可以包含特殊含义,也更容易被人们记住
字典和对象:
很多编程语言(比如Java)中对字典和对象区分比较明显,对象通常是一种在编译期就确定下来的结构,不可以动态的添加或者删除属性。
而字典通常会使用类似于哈希表的数据结构去实现一种可以动态的添加数据的结构
但是在JavaScript中,似乎对象本身就是一种字典,所有在早期的JavaScript中,没有字典这种数据类型,因为你完全可以去使用对代替。