Map映射的简单实现

Map是存储关键字和值间关联的对象。给定一个关键字,就可以找到其对应的值。关键字和值都是对象。关键字是唯一,但是值可以重复的。

可以认为映射容器分为两部分,一部分保存键,一部分保存值,并且部分之间有关联(一个键对应一个值)。

从数据结构的角度分析,有关Map 的典型操作有:

1、向Map 中插入具有给定关键字的元素单元。

2、在Map中查找具有给定关键字的元素单元。

3、在Map 中删除具有给定关键字的元素单元。

4、枚举(遍历)Map 中的所有元素单元。
 

我们可以尝试简单的实现Map的代码

代码如下(可能会存在小错误,望谅解):

<script>
  class Map {
    constructor () {
      //构造函数
      this.keys = []
      this.vals = []
    }
    get (key) {

      var keyIde = this.keys.indexOf(key)
      if (keyIdx >= 0) {
        return this.vals[keyIdx]
      }
    }
    has (key) {    //判断映射中是否存在某个key的映射

      var keyIdx = this.keys.indexOf(key)
      if (keyIdx >= 0) {
        return true
      }
      return false
    }
    set (key , val) {    //key的映射目标为val
      var keyIde = this.keys.indexOf(key)
      if (keyIdx >= 0) {
         this.vals[keyIde] = val
      } else {
        this.keys.push[keyIde]
        this.vals.push[keyIde]
      }
      return this
    }
    delete (key) {  //删除key的映射对
      var keyIdx = this.keys.indexOf(key)
      if (keyIdx >= 0) {
        this.keys.splice(keyIdx , 1)
        this.vals.splice(keyIdx , 1)
        return true
      }
      return false
    }
    clear (key) {    //清空所有的映射
      this.keys = []
      this.vals = []
    }
    size (key) {   //返回挡前map
     return this.keys.length
    }
  }
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值