js map对象处理if
onButtonClick只有一个参数时候,map和object对象都可以
// onButtonClick1(3) onButtonClick只有一个参数时候,map和object对象都可以
const map1 = new Map()
.set(1, { message: 'processing', page: 'indexPage' })
.set(2, { message: 'fail', page: 'failPage' })
.set(3, { message: 'success', page: 'successPage' })
.set(4, { message: 'cancel', page: 'cancelPage' })
.set('default', { message: 'other', page: 'otherPage' })
const onButtonClick2 = status => { if (map1.has(status)) {
let { message, page } = map1.get(status)
sendLog(message)
jumpTo(page)
}
} const sendLog = message => {
console.log(message);
}
const jumpTo = page => {
console.log(page);
}
增加onButtonClick参数 ,这个时候map是最好的选择
// 增加onButtonClick参数 ,这个时候map是最好的选择
const map3 = new Map()
.set({ identity: 'guest', status: 1 }, { message: 'processing', page: 'indexPage' })
.set({ identity: 'guest', status: 2 }, { message: 'fail', page: 'failPage' })
.set({ identity: 'guest', status: 3 }, { message: 'success', page: 'successPage' })
.set({ identity: 'guest', status: 4 }, { message: 'cancel', page: 'cancelPage' })
.set({ identity: 'guest', status: 5 }, { message: 'other', page: 'otherPage' })
.set({ identity: 'master', status: 1 }, { message: 'processing', page: 'indexPage' })
.set({ identity: 'master', status: 2 }, { message: 'fail', page: 'failPage' })
.set({ identity: 'master', status: 3 }, { message: 'success', page: 'successPage' })
.set({ identity: 'master', status: 4 }, { message: 'cancel', page: 'cancelPage' })
.set({ identity: 'master', status: 5 }, { message: 'other', page: 'otherPage' })
const onButtonClick4 = (identity, status) => {
const mapItem = [...map3].find(([key, value]) => {
return key.identity === identity && key.status === status
})
if (!mapItem) return
const [key, { message, page }] = mapItem
sendLog(message)
jumpTo(page) }
onButtonClick4('master', 3)
js map对象处理if的更多相关文章
- JS Map对象
java和C#等高级语言中都有map这样的键值对,但是js里没有,我们需要这样的,该怎么做呢? 可以自己使用function封装一个map对象,如下所示 function Map() { this.k ...
- js Map对象的用法
第一篇: Map: Map是一组键值对的结构,具有极快的查找速度. 举个例子,假设要根据同学的名字查找对应的成绩,如果用Array实现,需要两个Array: var names = ['Michael ...
- js模拟Map对象,实现key---value
js模拟Map对象,实现key---value 根据java中map的属性,实现key----value保存 function Map() { var struct = function (key, ...
- Js中Map对象的使用
Js中Map对象的使用 1.定义 键/值对的集合. 2.语法 mapObj = new Map() 3.备注 集合中的键和值可以是任何类型.如果使用现有密钥向集合添加值,则新值会替换旧值. 4.属性 ...
- 转:el表达式获取map对象的内容 & js中使用el表达式 & js 中使用jstl 实现 session.removeattribute
原文链接: ①EL表达式取Map,List值的总结 ②在jsp中使用el表达式通过键获得后台的一个map<Long,String>的值 ③在javascript中使用el表达式(有图有真相 ...
- JS中的Map对象
1,js创建map对象 var map = new Map(); 2.将键值对放入map对象 map.set("key",value) map.set("key1&quo ...
- 在js中将map对象转换成json 和 js对cookie的操作
在js中将map对象转换成json //msp转objectlet obj= Object.create(null); for (let[k,v] of map) { obj[k] = v; }//o ...
- js 操作map对象
转自:http://smallvq123.javaeye.com/blog/823923 /* * Map对象,实现Map功能 * * * size() 获取Map元素个数 * isEmpty() 判 ...
- 详细了解JS Map,它和传统对象有什么区别?
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者.原文出处:https://www.codeproject.com/Articles/5278387/Under ...
随机推荐
- Python-关于正则表达式的总结
什么是正则表达式? 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),用于字符串的 匹配 和 提取 等操作.正则表达式在所有编程语言中都是通用的. 很多人 ...
- SpringBoot设置跨域的几种方式
什么是跨域? 浏览器从一个域名的网页去请求另一个域名的资源时,域名.端口.协议任一不同,都是跨域 原因: 由于浏览器的同源策略, 即a网站只能访问a网站的内容,不能访问b网站的内容. 注意: 跨域问题 ...
- 2020重新出发,JAVA学前了解,Windosws常用快捷键
前言:windows 常用快捷键 标准计算机键盘共104键,除了26个字母键.符号键.数字键外,剩下的都是一些功能键: 键盘功能键 常用功能键:Esc.Tab.Caps Lock.Shift.Ctrl ...
- [机器学习] keras:MNIST手写数字体识别(DeepLearning 的 HelloWord程序)
深度学习界的Hello Word程序:MNIST手写数字体识别 learn from(仍然是李宏毅老师<机器学习>课程):http://speech.ee.ntu.edu.tw/~tlka ...
- JQuery的turn.js实现翻书效果
前言: hello大家好~好久没更博了……今天来和大家分享下JQ的turn.js,下面我先来简单介绍下我们今天的主角turn.js. Turn.js是一个JavaScript库,它集合了HTML5的所 ...
- C#LeetCode刷题之#237-删除链表中的节点(Delete Node in a Linked List)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3832 访问. 请编写一个函数,使其可以删除某个链表中给定的(非末 ...
- Linux学习日志第一天——基础命令①
文章目录 前言 命令的作用及基本构成 关于路径 命令 ls (list) 命令 pwd (print working directory) 命令cd (change directory) 命令 mkd ...
- Kubernetes用Helm安装Ingress并踩一下使用的坑
1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! Ingress是Kubernetes一个非常重要的Controller,它类似一个路由转发的组件,可以让外界访问Kubern ...
- start-stop-daemon: matching on world-writable pidfile /var/run/redis/redis-server.pid is insecurefailed
Microsoft Store上 看到最新的Ubuntu 20.04 LTS 已经适配到WSL上了, 于是卸载了老版本 18.04 LTS,安装上了最新版本的. 第一次启动会比较慢,需耐心等待 Ins ...
- 浏览器自动化的一些体会4 webBrowser控件之零碎问题2
1. DocumentCompleted的多次执行问题 有的网页,会多次触发DocumentCompleted事件,由于它是异步的,不会阻塞,所以如果不恰当处理,会造成某些代码被错误地多次执行,造成意 ...