javascript Map实现原理,es6 Map数据结构底层实现

您所在的位置:网站首页 js数组实现原理 javascript Map实现原理,es6 Map数据结构底层实现

javascript Map实现原理,es6 Map数据结构底层实现

2023-10-04 23:54| 来源: 网络整理| 查看: 265

🍏 javascript Map实现原理,es6 Map数据结构底层实现

文章目录 🍏 javascript Map实现原理,es6 Map数据结构底层实现🍎 1:前言🍐 2:hash表🍉 3:实现 get 功能🍓 4:实现 set 功能🍍 5:做个测试

🍎 1:前言

哈希表(也称为哈希表)是一种基于键直接访问内存存储位置的数据结构。也就是说,它通过计算一个键值函数来加速查找,该函数将要查询的数据映射到表中的某个位置。该映射函数称为散列函数,记录数组称为散列表。

比如,有一天,我们去购物店买了一件新的、不熟悉的商品。

在这里插入图片描述 张三:这个商品多少钱

收银员:(在键盘上噼啪作响。。。)

收银员:88元,给你凑个整。

(滴。。。付款成功)

成功支付90元。

🍐 2:hash表

收银员如何在数千件商品中如此迅速地找到这件商品的价格。

有人说可以遍历暴力查询,总能找到项目。

如果有一百万种产品,需要多少时间?虽然始终可以从头到尾查询,但我们追求更好的性能,这就是我们的哈希表存储。

在这里插入图片描述

我们需要做的就是将商品转化为下标形式的数字,并对应数组的下标,这样下次遇到这个商品,就可以直接根据下标获取我们需要的信息了。

就像我们有一根香蕉🍌 banana(香蕉)

我们想一个办法把它变成一个数字:

function getHash(str) { let _hash = 0; for (let i = 0; i let _hash = getHash(key); //这里的 arr 代表我们存储数据的数组 if(!this.arr[_hash]){ //如果没查到数据,返回undefined return undefined; } return this.arr[_hash]; } 🍓 4:实现 set 功能 function set(key,value){ let _hash = getHash(key); //这里的 arr 代表我们存储数据的数组 this.arr[_hash] = value; } 🍍 5:做个测试 class MyHash { constructor(){ this.arr = []; } get(key) { let _hash = getHash(key); //这里的 arr 代表我们存储数据的数组 if (!this.arr[_hash]) { //如果没查到数据,返回undefined return undefined; } return this.arr[_hash]; } set(key, value) { let _hash = getHash(key); //这里的 arr 代表我们存储数据的数组 this.arr[_hash] = value; } } let myhash = new MyHash(); myhash.set('banana', '88') console.log(myhash.get('banana'))


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3