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

号网站开发学校英语网站栏目名称

号网站开发,学校英语网站栏目名称,网站开发学习网站,网站怎么广告投放Map数据类型顾名思义也就是映射类型,包含一个[[Entries]]私有特性我们可以使用一个二维数组作为初始值const map1 new Map([[1, 1],[2, 2],[3, 3],]); console.log(Map数据类型, map1);当然也可以使用迭代器进行初始化const map2 new Map({[Symbol.iterator]…Map数据类型顾名思义也就是映射类型,包含一个[[Entries]]私有特性我们可以使用一个二维数组作为初始值 const map1 new Map([[1, 1],[2, 2],[3, 3],]); console.log(Map数据类型, map1); 当然也可以使用迭代器进行初始化const map2 new Map({[Symbol.iterator]: function* () {yield* [[1, 1],[2, 2],[3, 3],];},});console.log(Map数据类型, map2); 我们来看一下Map数据类型内部结构(着重看下私有特性)我们可以看到,Map数据类型包含了一个[[Entries]]私有特性这个特性中可以看到一个清晰的映射关系而在Map数据类型的原型上还挂在了很多方法诸如 get set delete clear等操作方法还有一个关于size属性的get访问器特性另外,我们还可以清晰地看到Map数据类型包含着迭代器属性,且迭代方法默认为entries()我们首先来学习一下关于Map的操作方法.set() const emptyMap new Map();console.log(emptyMap, emptyMap);emptyMap.set(name, shang)console.log(set结果, emptyMap); 新增映射关系由于set方法会返回被操作的Map数据,所以可以链式调用 emptyMap.set(gender, male).set(age, 17);console.log(set结果, emptyMap); 可以链式调用.get() console.log(get方法, emptyMap.get(name) 通过键获取映射值.has() console.log(has方法, emptyMap.has(name)) 通过has方法检验映射是否存在.delete() emptyMap.delete(name) console.log(delete结果, emptyMap); 使用delete删除一个映射.clear() emptyMap.clear()console.log(emptyMap的size, emptyMap.size); clear后,所有映射关系都被清除了Map数据类型可以接受各种类型的作为键这里我们测试一下,function, Symbol 以及Object类型 const functionKey function() {};const symbolKey Symbol()const objectKey new Object()emptyMap.set(functionKey, functionKey).set(symbolKey, symbolKey).set(objectKey, objectKey)console.log(各种特殊键值对, emptyMap) 复杂类型作为键值时,Map类型并不保存快照,而是保存指针这句话听起来挺唬人but其实理解起来很简单我举个例子const emptyArr []; const emptyObj {}; emptyMap.set(emptyArr, emptyObj); emptyArr.push(1); emptyObj.name shang; console.log(复杂类型特殊键值对, emptyMap); console.log(复杂类型特殊值, emptyMap.get(emptyArr)); 顺序维护和迭代方法Map会自动维护关于元素的顺序而且从上面Map数据类型原型链我们可以得知Map数据类型包含一个默认方法为entries的迭代器console.log(Map数据类型默认迭代器, emptyMap.entries emptyMap[Symbol.iterator]) foroffor (const [key, value] of emptyMap) {console.log(forof映射元素分别为, key, value); } Map可以使用forof方法展开迭代拓展运算符console.log(拓展运算符用于Map数据类型, [...emptyMap]); 拓展运算符与forof公用迭代器forEach方法emptyMap.forEach((value, key) {console.log(forEach映射元素分别为, key, value); }); Map关于forEach的迭代效果与数组类似,value在前,key在后Map使用values keys 返回映射的迭代器keys返回映射关于key的迭代器可以用于forof 拓展运算符 Map Set等等// Map使用values keys 返回映射的迭代器 const keysIterator emptyMap.keys(); console.log(Map的keys的迭代器, keysIterator); for (const iterator of keysIterator) {console.log(keysIterator, iterator); } values返回映射关于value的迭代器可以用于forof 拓展运算符 Map Set等等const valuesIterator emptyMap.values(); console.log(Map的values的迭代器, valuesIterator); for (const iterator of valuesIterator) {console.log(valuesIterator, iterator); } Map相较于Object有何优缺点???数据类型占用内存插入数据删除数据查数据Map同等数据量比Object少占50%内存插入更快,更省性能删除更快,更省性能×Object×××有线性优化,查找更快,数据量越大查找优势越明显
http://www.zqtcl.cn/news/589252/

相关文章:

  • 多个域名 一个网站域名解析官网
  • 中国建设银行企业网站旅游网页代码模板
  • 湛江免费企业建站wordpress archives
  • 建个企业网站多少钱图书管理系统网站开发教程
  • 淘宝客网站建设详细教程wordpress转dz
  • 银川网站推广i深建官方网站
  • 有什么较好的网站开发框架娱乐网站模板
  • 宿迁网站建设托管wordpress 萝莉
  • 定制网站开发冬天里的白玫瑰制作复杂的企业网站首页
  • 网站开发及设计演讲海报免费做网站app下载
  • 做动态图片的网站吗自考网站建设与实践
  • 建外贸网站需要多少钱胖咯科技 网站建设
  • wordpress注明网站做微网站的第三方登录
  • 学网站建设维护网站公司建设公司
  • 做小型网站的公司wordpress 主题上传
  • 网站之家查询重庆市建设项目环境申报表网站
  • 网站建设基础及流程网站运营一个月多少钱
  • 南沙免费网站建设wordpress邮箱注册
  • 网站关键字优化软件网络营销推广方式包括?
  • 专做装修的网站pc端好玩的大型网游
  • 洞泾网站建设网易考拉的网站建设
  • 网站建设的市场调研杭州网络公司项目合作
  • 济源网站制作电子商务平台有哪些
  • 网站轮播图怎么设计河南省住房城乡建设厅网站首页
  • o2o商城网站建设wordpress后台密码忘记了怎么办
  • 网站排版策划公司官网网站建设想法
  • 泉州网站建设报价建网站找哪家公司
  • 国外网站建设推广iapp网站怎么做软件
  • 网站的设计步骤做网站的虚拟机怎么用
  • 游戏的网站做普通网站多少钱