首页
友链
导航
影视
壁纸
统计
留言板
Search
1
el-upload自定义触发按钮及触发上传前判断
801 阅读
2
vue配置二级目录以及nginx多网站部署
694 阅读
3
el-cascader选择任意一级搭配懒加载使用,单选框radio不会触发懒加载
564 阅读
4
joe主题自定义导航页面
472 阅读
5
js获取昨天今天明天日期
460 阅读
web前端
vue
react
javascript
nuxt
typescript
indexDB数据库
微信小程序
美文欣赏
心情随笔
技术分享
其他
PHP
nodejs
博客api实战项目
typecho
登录
Search
标签搜索
web
vue
node项目实战
js
javascript
typecho
css
vuex
router
nginx
git
element
joe
utils
leaflet
dateFormat
map
date
axios
reg
辰漪
累计撰写
66
篇文章
累计收到
122
条评论
首页
栏目
web前端
vue
react
javascript
nuxt
typescript
indexDB数据库
微信小程序
美文欣赏
心情随笔
技术分享
其他
PHP
nodejs
博客api实战项目
typecho
页面
友链
导航
影视
壁纸
统计
留言板
搜索到
1
篇与
map
的结果
2021-11-24
map数据结构
<!-- index-menu -->一、简介 map数据结构类似于键值对的集合,和Object区别是键可以存任何数据类型。二、Map实例的方法和属性Map实例的方法:1. Map.prototype.set(key, value) 添加 2. Map.prototype.get(key) 获取 3. Map.prototype.has(key) 判断 4. Map.prototype.delete(key) 删除 5. Map.prototype.clear() 清空 6. Map.prototype.keys() 获取所有的键组成的数组 [key, key1, key2]形式 7. Map.prototype.values() 获取所有的值组成的数组 [value, value1, value2]形式 8. Map.prototype.entries() 获取所有的成员组成的数组 [ [key, value], [key2, value2] ]形式 9. Map.prototype.forEach() 遍历方法类似于数组的forEach循环Map的属性:1. size 获取map长度三、map增删改查// html <div class="box">box</div> const boxEl = document.querySelector('.box') // dom1. set 存储数据 返回值 整个map数据结构,如果键存在,会更新,否则添加新的键map.set('a', 1) map.set(boxEl, 2) map.set(undefined, 3) map.set(222, '数字') map.set(null, 'null')2. get 获取数据 返回值 对应键的值,没有返回undefinedconsole.log(map.get('a')); // 1 console.log(map.get(boxEl)); // 2 console.log(map.get(undefined)); // 3 console.log(map.get(222)); // 数字 console.log(map.get(5)); // undefined3. has 判断map数据结构中有没有该数据 返回值 true / falseconsole.log(map.has('a')); // true console.log(map.has(boxEl)); // true console.log(map.has(undefined)); // true console.log(map.has(222)); // true console.log(map.has(5)); // false4. delete 删除map数据结构中的键 返回值 true / falseconsole.log(map.delete('a')); // true console.log(map.delete('b')); // false5. clear 清空map中所有的数据 无返回值map.clear() console.log(map); // Map(0) {}四、map遍历1. Map.prototype.keys() 返回键名集合,通过for of遍历数组for(let key of map.keys()) { console.log(key); // 键 }2. Map.prototype.values() 返回键值的集合,通过for of遍历数组for(let value of map.values()) { console.log(value); // 值 }3. Map.prototype.entries() 返回所有的成员,通过for of遍历数组for(let [key, value] of map.entries()) { // 数组的解构赋值 console.log(key, value); // 键 值 }4. Map.prototype.forEach() 直接遍历map结构,类似于数组的forEach方法遍历map.forEach((value, key, map) => { console.log(key, 1); // 键 console.log(value); // 值 console.log(map); // 原map结构 })五、数组对象和map之间的转换1. map转数组 使用展开符(...)[...map] // [ [key, value], [key, value], [key, value]]2. 数组转map 使用new Map()传入一个包含键和值的数组集合let arr = [ ['a', 1], ['b', 2] ] new Map(arr) // Map(2) {'a' => 1, 'b' => 2}3. map转对象 当map的键名是字符串,可以完全转换,如果非字符串,会先转化为字符串let map = new Map().set('a', 1).set('b', 2) let obj = {} for(let [key, value] of map.entries()) { // 数组的解构赋值 console.log(key, value); // 键 值 obj[key] = value } console.log(obj)// {a: 1, b: 2}4. 对象转map 可以通过对象的Object.entries()方法,该方法返回 键值对组成的数组集合[ [key, value], [key, value], [key, value]]let obj = {"a":1, "b":2}; let map = new Map(Object.entries(obj)); // 实际上是遍历对象,通过set给map设置值 for (let k in obj) { map.set(k, obj[k]) }
2021年11月24日
115 阅读
0 评论
5 点赞