es6新属性----map

Javascript的Object本身就是键值对的数据结构,但实际上属性和值构成的是”字符串-值“对,属性只能是字符串,如果传个对象字面量作为属性名,那么会默认把对象转换成字符串,结果这个属性名就变成”[object Object]“。

ES6提供了”值-值“对的数据结构,键名不仅可以是字符串,也可以是对象。它是一个更完善的Hash结构。

推荐博客:https://www.cnblogs.com/kongxianghai/p/7309735.html

其中的entries比较常用:

这是一个遍历所有键值对的函数:

比如我们现在有一个需求:满足参数是1~4会调用fun1函数,值是40就会调用fun2函数,不能用if-else形式

const map = new Map();
        const statusArr = [1, 2, 3, 4]
        const status2 = 40
        map.set(statusArr, fun1);
        map.set(status2, fun2);
        let handle = function () { }
        function fun1() {
            console.log("This is a fun1");
        }
        function fun2() {
            console.log("This is a fun2");
        }
        const getval = (param) => {
            for (let value of map.entries()) {
                console.log(JSON.stringify(value))
                if (typeof (value[0]) == "object") {
                    if (value[0].includes(param)) {
                        handle = value[1];
                    }
                }else{
                    if(value[0]==param){
                        handle=value[1];
                    }
                }
            }
        }
        const a = 40;
        getval(a);
        handle();

这里我们可以发现我们的value是一个数组,value[0]表示是键,value[1]表示是键值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值