当前位置: 首页 > news >正文

福州市网站建设_网站建设公司_导航菜单_seo优化

互联网企业网站模板,wordpress 分类下文章列表,网络管理系统的基本组件包括哪些?,邯郸北京网站建设之前在学习 ES6 的时候#xff0c;看到 Set 和 Map#xff0c;不知道其应用场景有哪些#xff0c;只觉得很多时候会用在数组去重和数据存储#xff0c;后来慢慢才领悟到 Set 是一种叫做集合的数据结构#xff0c;Map 是一种叫做字典的数据结构。SetSet 本身是一个构造函数…之前在学习 ES6 的时候看到 Set 和 Map不知道其应用场景有哪些只觉得很多时候会用在数组去重和数据存储后来慢慢才领悟到 Set 是一种叫做集合的数据结构Map 是一种叫做字典的数据结构。SetSet 本身是一个构造函数用来生成 Set 数据结构。Set 函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数用来初始化。Set 对象允许你存储任何类型的值无论是原始值或者是对象引用。它类似于数组但是成员的值都是唯一的没有重复的值。const s new Set()[2, 3, 5, 4, 5, 2, 2].forEach((x) s.add(x))for (let i of s) {console.log(i)}// 2 3 5 4Set 中的特殊值Set 对象存储的值总是唯一的所以需要判断两个值是否恒等。有几个特殊值需要特殊对待0 与 -0 在存储判断唯一性的时候是恒等的所以不重复undefined 与 undefined 是恒等的所以不重复NaN 与 NaN 是不恒等的但是在 Set 中认为 NaN 与 NaN 相等所有只能存在一个不重复。Set 的属性size返回集合所包含元素的数量const items new Set([1, 2, 3, 4, 5, 5, 5, 5])items.size // 5Set 实例对象的方法add(value)添加某个值返回 Set 结构本身(可以链式调用)。delete(value)删除某个值删除成功返回 true否则返回 false。has(value)返回一个布尔值表示该值是否为 Set 的成员。clear()清除所有成员没有返回值。s.add(1).add(2).add(2)// 注意2被加入了两次s.size // 2s.has(1) // trues.has(2) // trues.has(3) // falses.delete(2)s.has(2) // false遍历方法keys()返回键名的遍历器。values()返回键值的遍历器。entries()返回键值对的遍历器。forEach()使用回调函数遍历每个成员。由于 Set 结构没有键名只有键值(或者说键名和键值是同一个值)所以 keys 方法和 values 方法的行为完全一致。let set new Set([red, green, blue])for (let item of set.keys()) {console.log(item)}// red// green// bluefor (let item of set.values()) {console.log(item)}// red// green// bluefor (let item of set.entries()) {console.log(item)}// [red, red]// [green, green]// [blue, blue]Array 和 Set 对比Array 的 indexOf 方法比 Set 的 has 方法效率低下Set 不含有重复值(可以利用这个特性实现对一个数组的去重)Set 通过 delete 方法删除某个值而 Array 只能通过 splice。两者的使用方便程度前者更优Array 的很多新方法 map、filter、some、every 等是 Set 没有的(但是通过两者可以互相转换来使用)Set 的应用1、Array.from 方法可以将 Set 结构转为数组。const items new Set([1, 2, 3, 4, 5])const array Array.from(items)2、数组去重// 去除数组的重复成员;[...new Set(array)]Array.from(new Set(array))3、数组的 map 和 filter 方法也可以间接用于 Setlet set new Set([1, 2, 3])set new Set([...set].map((x) x * 2))// 返回Set结构{2, 4, 6}let set new Set([1, 2, 3, 4, 5])set new Set([...set].filter((x) x % 2 0))// 返回Set结构{2, 4}4、实现并集 (Union)、交集 (Intersect) 和差集let a new Set([1, 2, 3])let b new Set([4, 3, 2])// 并集let union new Set([...a, ...b])// Set {1, 2, 3, 4}// 交集let intersect new Set([...a].filter((x) b.has(x)))// set {2, 3}// 差集let difference new Set([...a].filter((x) !b.has(x)))// Set {1}weakSetWeakSet 结构与 Set 类似也是不重复的值的集合。成员都是数组和类似数组的对象若调用 add() 方法时传入了非数组和类似数组的对象的参数就会抛出错误。const b [1, 2, [1, 2]]new WeakSet(b) // Uncaught TypeError: Invalid value used in weak set成员都是弱引用可以被垃圾回收机制回收可以用来保存 DOM 节点不容易造成内存泄漏。WeakSet 不可迭代因此不能被用在 for-of 等循环中。WeakSet 没有 size 属性。MapMap 中存储的是 key-value 形式的键值对, 其中的 key 和 value 可以是任何类型的, 即对象也可以作为 key。 Map 的出现就是让各种类型的值都可以当作键。Map 提供的是 “值-值”的对应。Map 和 Object 的区别Object 对象有原型 也就是说他有默认的 key 值在对象上面 除非我们使用 Object.create(null)创建一个没有原型的对象在 Object 对象中 只能把 String 和 Symbol 作为 key 值 但是在 Map 中key 值可以是任何基本类型(String, Number, Boolean, undefined, NaN….)或者对象(Map, Set, Object, Function , Symbol , null….);通过 Map 中的 size 属性 可以很方便地获取到 Map 长度 要获取 Object 的长度 你只能手动计算Map 的属性size: 返回集合所包含元素的数量const map new Map()map.set(foo, ture)map.set(bar, false)map.size // 2Map 对象的方法set(key, val): 向 Map 中添加新元素get(key): 通过键值查找特定的数值并返回has(key): 判断 Map 对象中是否有 Key 所对应的值有返回 true否则返回 falsedelete(key): 通过键值从 Map 中移除对应的数据clear(): 将这个 Map 中的所有元素删除const m new Map()const o { p: Hello World }m.set(o, content)m.get(o) // contentm.has(o) // truem.delete(o) // truem.has(o) // false遍历方法keys()返回键名的遍历器values()返回键值的遍历器entries()返回键值对的遍历器forEach()使用回调函数遍历每个成员const map new Map([[a, 1],[b, 2],])for (let key of map.keys()) {console.log(key)}// a// bfor (let value of map.values()) {console.log(value)}// 1// 2for (let item of map.entries()) {console.log(item)}// [a, 1]// [b, 2]// 或者for (let [key, value] of map.entries()) {console.log(key, value)}// a 1// b 2// for...of...遍历map等同于使用map.entries()for (let [key, value] of map) {console.log(key, value)}// a 1// b 2数据类型转化Map 转为数组let map new Map()let arr [...map]数组转为 MapMap: map new Map(arr)Map 转为对象let obj {}for (let [k, v] of map) {obj[k] v}对象转为 Mapfor( let k of Object.keys(obj)){map.set(k,obj[k])}Map的应用在一些 Admin 项目中我们通常都对个人信息进行展示比如将如下信息展示到页面上。传统方法如下。姓名{{info.name}}年龄{{info.age}}性别{{info.sex}}手机号{{info.phone}}家庭住址{{info.address}}家庭住址{{info.duty}}js 代码mounted() {this.info {name: jack,sex: 男,age: 28,phone: 13888888888,address: 广东省广州市,duty: 总经理}}我们通过 Map 来改造将我们需要显示的 label 和 value 存到我们的 Map 后渲染到页面这样减少了大量的html代码{{label}}{{value}}js 代码data: () ({info: {},infoMap: {}}),mounted () {this.info {name: jack,sex: 男,age: 28,phone: 13888888888,address: 广东省广州市,duty: 总经理}const mapKeys [姓名, 性别, 年龄, 电话, 家庭地址, 身份]const result new Map()let i 0for (const key in this.info) {result.set(mapKeys[i], this.info[key])i}this.infoMap result}WeakMapWeakMap 结构与 Map 结构类似也是用于生成键值对的集合。只接受对象作为键名(null 除外)不接受其他类型的值作为键名键名是弱引用键值可以是任意的键名所指向的对象可以被垃圾回收此时键名是无效的不能遍历方法有 get、set、has、delete总结Set是一种叫做集合的数据结构(ES6新增的)成员唯一、无序且不重复[value, value]键值与键名是一致的(或者说只有键值没有键名)允许储存任何类型的唯一值无论是原始值或者是对象引用可以遍历方法有add、delete、has、clearWeakSet成员都是对象成员都是弱引用可以被垃圾回收机制回收可以用来保存 DOM 节点不容易造成内存泄漏不能遍历方法有 add、delete、hasMap是一种类似于字典的数据结构本质上是键值对的集合可以遍历可以跟各种数据格式转换操作方法有:set、get、has、delete、clearWeakMap只接受对象作为键名(null 除外)不接受其他类型的值作为键名键名是弱引用键值可以是任意的键名所指向的对象可以被垃圾回收此时键名是无效的不能遍历方法有 get、set、has、delete推荐文章关注的我的公众号不定期分享前端知识与您一起进步
http://www.ihoyoo.com/news/18499.html

相关文章:

  • 貴阳建设银行网站公司网站建设与维护工作计划
  • 搜索网站排行榜做网站维护有前途吗
  • 西安网站设计西安搜推宝网站统计系统 怎么做
  • 帝国cms 做的完整的网站有没有兼职网站开发一个月
  • 北京建站公司哪家好都选万维科技南通网站建设方法
  • 自己做的网站背景怎么设置呼和浩特网站建设公司
  • 北京模板网站建设全包外贸网站都有哪些内容
  • 建网站 南京物业管理系统有哪些模块
  • 做社区网站网站目录编辑审核的注意事项
  • 小企业网站模板安卓手机本地视频播放器
  • 青海做网站最好的公司网站备案连接怎么做
  • 最好加盟网站建设建站之星收费版
  • 网站开发技术考试试卷郑州seo关键词优化公司
  • 新沂市建设局网站营销网站建设教学
  • 深圳建网站哪个公司长春师范大学
  • 济源市工程建设监理所网站seowhy教研室
  • 十堰网站建设专家上海企业建站流程
  • 如何做网站搬运工赚钱佛山网红
  • 电商网站类型旅游网站建设合同
  • 大型网站的mssql数据库要付费吗金螳螂装饰公司
  • nike网站开发背景及意义建站网站方法
  • 南通专业网站建设报价深圳网站优化软件
  • 设计素材网站源码易购商城网站怎么做啊
  • 海口网站建设方案咨询安卓网站建站系统下载
  • 如果建设一个网站做一斗地主网站多少钱
  • 网站制作公司网app开发软件怎么做
  • 做网站要求电脑配置银狐鑫诺科技 网站建设
  • 辽宁建设厅网站首页助孕网站优化推广
  • 运动鞋的网站建设规划书泉州市网站建设
  • wordpress 内容置顶站长工具seo综合查询腾讯