文档详情

ajax实用技术教学课件作者程继洪肖川李海斌编著第8章常用对象简介8.8-8.9.pptx

发布:2019-10-09约4.51千字共35页下载文档
文本预览下载声明
8.8 Map和Set 8.8.1 Map 在JavaScript中(自ECMAScript 5引入Map),Map是一个“键-值”对的集合。 在ES 5中Map的键只能是String字符串类型,但在ES 6中做出了重大改进,键可以是任意类型的对象,值也可以是任意类型的对象。 1、Map的创建与初始化 Map创建十分容易,使用new关键字创建即可,而且可以在创建时初始化。 ◆ var map = new Map(); // 声明一个Map对象 ◆ let map = new Map([ [1, one], [2, two], [3, three] ]); // 声明并初化一个Map ◆ let map = new Map() .set(1, one) .set(2, two) .set(3, three); 其中let用于声明一个变量,最后一种方式是对象的链式调用。后面两种方式都是在声明Map时将其初始化。 2、Map的操作 Map通过get(key)方法获取指定的key对应的值, 通过set(key, value)设置“键-值”对, 通过delete(key)删除key对应的条目, 通过clear()方法清空Map。 map.get(1); // 返回one map.delete(2); // 删除map中键为2的条目 3、Map的遍历 遍历Map有好多种方法,即可以遍历它的key的集合,也可以遍历value的集合,还可以遍历条目entries的集合,下面分别予以说明。 (1)遍历Map键(key)的集合 通过Map的keys()方法返回Map所有键的集合,然后通过for…of循环遍历每个键。 for (let key of map.keys()) { console.log(key); } 这种方式也可以通过get()方法获取key对应的value,也可用于间接访问Map的value的集合。 (2)遍历Map值的集合 通过Map的values()方法返回Map所有值的集合,然后通过for…of循环遍历每个值。 for (let value of map.values()) { console.log(value); } (3)遍历Map的条目 通过Map的entries()方法获取Map条目的集合,然后通过for…of循环遍历每个条目,其中entry[0]表示key,entry[1]表示value。 for (let entry of map.entries()) { console.log(entry[0], entry[1]); } 还可以通过以下方式同时访问条目的key-value对: for (let [key, value] of map.entries()) { console.log(key, value); } 这种用法比较陌生,请大家认真多写几遍,力求掌握。 下面通过一个例子来说明Map的用法,代码如清单8-11所示。 在清单8-11中,首先通过new关键字声明并初始化map1,这里需要注意的是初始化参数,它首先是一个数组[],数据的元素也是一个结构为[key, value]的数组,即 [ [1, Monday], [2, Tuesday], [3, Wendesday], [4, Thursday], [5, Friday], [6, Saturday], [7, Sunday] ] 类似于一个7×2的二维数组,而不一个简单的一维数组,这一点要特别注意。 对于map2的声明和初始化则采用了new关键字和链式调用的方式。 这里需要注意的是,在分行写的情况下,Map()后没有任何符号,它的符号在下一行,为“.”运算符,而每个set()后也是仅跟一个“.”运算符, 最后是一个分号表示该声明语句结束。格式如下: var map2 = new Map() .set(2015, {animal: 马, leep: 平年}) .set(2016, {animal: 猴, leep: 闰年}) .set(2017, {animal: 鸡, leep: 平年}); 这种格式的写法要特别注意,不要每写一行“顺便”以分号结束,就会产生语法错误! 这一点要特别注意。 通过for…of循环遍历map2的条目entries的方法输出map2的值十分简单,代码如下: for (let [key, value] of map2.entries()) { console.log(key, value); } 很遗憾,虽然简单,但输入的结果不能令人满意: 2015 Object {animal: 马, leep: 平年} 2016 Object {ani
显示全部
相似文档