首页 > 其他分享 >new Map() 小实例

new Map() 小实例

时间:2022-12-27 15:35:13浏览次数:37  
标签:Map console log res 上架 实例 new

new Map()

定义:

// const map = new Map();
  const map = new Map([[1, 2], [{ a: 1 }, 2], ["1", 2]]);
  console.log(map) // Map(3) {1 => 2, {…} => 2, "1" => 2}

实例属性和方法:

size 项数
set 添加一个新建元素到映射
clear  从映射中移除所有元素
delete 从映射中移除指定的元素
has 如果映射包含指定元素,则返回 true
get 返回映射中的指定元素
toString 返回映射的字符串表达式
valueOf 返回指定对象的原始值

 

keys()
values()
entries()
for..of

let myMap = new Map()
myMap.set(0, 'zero')
myMap.set(1, 'one')

for (let [key, value] of myMap) {
  console.log(key + ' = ' + value)
}
// 0 = zero
// 1 = one

for (let key of myMap.keys()) {
  console.log(key)
}
// 0
// 1

for (let value of myMap.values()) {
  console.log(value)
}
// zero
// one

for (let [key, value] of myMap.entries()) {
  console.log(key + ' = ' + value)
}
// 0 = zero
// 1 = one

 

简化代码
比如有这样的一个需要:后端返回 0 需要前端展示 "未上架"1 代表 "已上架"2 代表 "正在上架"
通常我们可以写一段 switch ,更或者写一堆 if else 。

et res = 2;
let resetValue = (res) => {
  switch (res) {
    case 0:
      return "未上架";
    case 1:
      return "已上架";
    case 2:
      return "正在上架";
    default:
      return "--";
  };
};
console.log(resetValue(res))

 

加下来对比使用 new Map() 的代码量

 var res = 2;
        var resetValue=new Map([
            [1,'未上架'],
            [2,'已上架'],

        ])
        function switchFn(res){
            return resetValue.has(res)?resetValue.get(res):'---'
        }
        console.log("resetValue", switchFn(res));

方便追加判断 匹配项
如果有不确定个数的匹配项,或者 待匹配项 是不确定的,此时 switch 将不能再用,此时就可以可以 new Map() 的 set 方法。

let res = "qs";
let resetValueMap = new Map([[0, "未上架"], [1, "已上架"], [2, "正在上架"]]);
resetValueMap.set("qs", "缺货"); // resetValueMap.set(key, value);
console.log(resetValueMap);
// 使用 resetValueMap
console.log(resetValueMap.get(res) ? resetValueMap.get(res) : "--");

 

标签:Map,console,log,res,上架,实例,new
From: https://www.cnblogs.com/ddqyc/p/17008176.html

相关文章

  • new 操作符干了什么
    首先说new,new是创建实例,常规如下:functiona(x){this.x=x}//实例化letb=newa(3)//{x:3}b.__proto__===a.prototype//trueb.__proto__===......
  • utf-8 - 如何修复 'character map file ` UTF-8' not found'
    正在设置一个UBIrhel8容器。我需要执行这个命令:localedef-fUTF-8-ien_USen_US.UTF-8失败了:charactermapfile`UTF-8'notfound:Nosuchfileordirect......
  • mybatis: Invalid bound statement (not found): com.xxx.mapper.xxxMapper.selectByx
    背景:业务功能开发,新增一些查询功能,对应地创建了一个mapper接口类,一个mapper.xml文件。这个mapper的命名是:Rolemapper.xml(盯着它)什么namespace,方法名都没有名,......
  • GDB调试精粹及使用实例
    一:列文件清单 1.List (gdb)listline1,line2 二:执行程序 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明......
  • 【Packet Tracer】VLAN配置实例
    1.VLAN是什么VLAN就是虚拟局域网 (1)VLAN的好处控制广播域增强网络的安全性可以简化管理2.配置实例 ......
  • Configmap
    百度网盘链接:https://pan.baidu.com/s/15t_TSH5RRpCFXV-93JHpNw?pwd=8od3 提取码:8od315Configmap15.1Configmap概述15.1.1什么是Configmap?Configmap是k8s中的资源......
  • 0308_【理解】实例数据管理
    1、packagecom.yootk.nacos;//package importcom.alibaba.nacos.api.PropertyKeyConst; //PropertyKeyConstimportcom.alibaba.nacos.api.naming.NamingFactory; ......
  • 【视频】向量自回归VAR数学原理及R软件经济数据脉冲响应分析实例|附代码数据
    原文链接:http://tecdat.cn/?p=9368最近我们被客户要求撰写关于向量自回归VAR的研究报告,包括一些图形和统计输出。向量自回归(VAR)是一种用于多变量时间序列分析的统计......
  • 2021Kali系列 -- BurpSuite(sqlmap插件)
    再等几年我们就在一起上下班,逛超市,做饭,窝在沙发上看电影,在我们自己家里,等我再努力一下。。。---- 网易云热评一、启动BurpSuite,选择Extender--》BApp Store--》SQLiPy s......
  • 2021Kali系列 -- Burpsuite+Sqlmap批量扫描
    我没有被谁好好爱过,所以只要有人对我好一点,我就以为遇到对的人,如果打扰到你,不好意思。。。---- 网易云热评 一、设置BurpSuite,保存日志文件1、选择Project options====......