es6 new Map()映射 及ts中的枚举

在力扣遇到一到题,是罗马数字计算其中实现的过程中有一部分需要字符串到数字的映射。我的第一想法是通过switch进行实现

switch(item){
            case 'I' :
               value = 1
               break;
            case 'V' :
               value = 5
               break
            case 'X' :
               value = 10;
               break;
            case 'L' :
               value = 50;
               break;
            case 'C' :
               value = 100;
               break;
            case 'D' :
               value = 500;
               break;
            case 'M' :
               value = 1000
               break;
        }

虽然也实现了,但是后来看到题解的时候就觉得很憨。这不就是映射嘛,完全没想到,所以在这里整理一下。

Map对象自带方法

  • clear 从映射中移除所有元素
  • delete 从映射中移除指定元素
  • forEach 对映射中的每个元素执行指定操作
  • get 返回映射中指定的元素
  • has 如果映射包含指定元素,则返回true
  • set 添加一个新建元素到映射
  • toString 返回映射字符串形式
  • valueOf 返回指定对象的原始值

使用方法

var m = new Map([1'red'])
m.set(2,'balck')
m.set(3,()=>{console.log('我是3')}
m.set('键1',{value:'值1'})
console.log(m.get(1)//red
console.log(m.size)//4
console.loh(m.has('键1'))// true

优化

//1.
const symbolValues = new Map();
    symbolValues.set('I', 1);
    symbolValues.set('V', 5);
    symbolValues.set('X', 10);
    symbolValues.set('L', 50);
    symbolValues.set('C', 100);
    symbolValues.set('D', 500);
    symbolValues.set('M', 1000);  
//2.使用字面量
let symbolValues = {
   "I":1,
   "v":2
}

ts中的枚举

//Up的值为 0, Down的值为 1等等。从0开始自增长
enum Direction {
    Up,
    Down,
    Left,
    Right
}
//当然你也可以指定值
enum Direction {
    Up = 1,
    Down,
    Left,
    Right
}
//或许使用字符串枚举
enum Direction {
    Up = "UP",
    Down = "DOWN",
    Left = "LEFT",
    Right = "RIGHT",
}
console.log(Up)//"Up"
//异构
enum Direction {
    Up = "UP",
    Down = 2
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值