不扯淡了,还是来学技术吧。
散列,是一种常用的数据存储技术,优势在于可以快速的插入或取出,使用它的数据结构,叫散列表。
它的优势哈,插入、删除、取用数据都很快,但对于查找却效率低下。
(书上原话,我不太懂,取用和查找不是一回事吗?不得找到了才能用么?)
散列表在JS里只能是基于数组来进行设计了。它的数据存储是和该元素对应的键,并保存在数组的特定位置。感觉和对象很类似。
在存储的时候,通过散列函数将键映射为一个数字,这个数的范围是0至散列表的长度。
说了半天,有点绕,我都有点晕。先上个图看看,
这个就是散列表,书中第88页,
这是一个简单的电话本,把名字d,u,r,r这四个字母的ASCII码加在一起,413(键)。就把散列值和名字Durr(值)对应起来了。
散列函数有时会重复,因为也许会有另外几个字母的ascii值相加也等于413,这就是把二个键映射成一个值了,这就叫碰撞。
另外一个知识点就是,编写散列函数时对数组大小的考虑,一般来讲,数组长度应该是个质数。
/****/
质数:指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。
--百度查的