网站大量收购独家精品文档,联系QQ:2885784924

ECMAScript 6 Set与Map数据结构.pdf

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ECMAScript 6 Set和Map数据结构 1. Set 2. WeakSet 3. Map 4 . WeakMap Set 基本⽤法 ES6提供了新的数据结构Set 。它类似于数组,但是成员的值都是唯⼀的,没有重复的 值。 Set本⾝是⼀个构 函数,⽤来⽣成Set数据结构。 var s = new Set(); [2, 3, 5, 4, 5, 2, 2].map(x = s.add(x)); for (let i of s) console.log(i); } // 2 3 5 4 上⾯代码通过add⽅法向Set结构加⼊成员,结果表明Set结构不会添加重复的值。 Set函数可以接受⼀个数组 (或类似数组的对象)作为参数,⽤来初始化。 // 例⼀ var set = new Set([1, 2, 3, 4, 4]); [...set] // [1, 2, 3, 4] // 例⼆ var items = new Set([1, 2, 3, 4, 5, 5, 5, 5]); items.size // 5 // 例三 function divs () return [...document.querySelectorAll(div )]; } var set = new Set(divs()); set.size // 56 // 类似于 divs().forEach(div = set.add(div)); set.size // 56 上⾯代码中,例⼀和例⼆都是Set函数接受数组作为参数,例三是接受类似数组的对 象作为参数。 上⾯代码中,也展⽰了⼀种去除数组重复成员的⽅法。 // 去除数组的重复成员 [...new Set(array)] 向Set加⼊值的时候,不会发⽣类型转换,所以5和5是两个不同的值。Set 内部判断 两个值是否不同,使⽤的算法叫做“Same-value equality” ,它类似于精确相等运算符 (===),主要的区别是NaN等于⾃⾝,⽽精确相等运算符认为NaN不等于⾃⾝。 let set = new Set(); let a = NaN; let b = NaN; set.add(a); set.add(b); set // Set NaN} 上⾯代码向Set实例添加了两个NaN,但是只能加⼊⼀个。这表明,在Set 内部,两 个NaN是相等。 另外,两个对象总是不相等的。 let set = new Set(); set.add( }); set.size // 1 set.add( }); set.size // 2 上⾯代码表⽰,由于两个空对象不相等,所以它们被视为两个值。 Set实例的属性和⽅法 Set结构的实例有以下属性。 Stotype.constructor:构 函数,默认就是Set函数。 Stotype.size:返回Set实例的成员总数。 Set实例的⽅法分为两⼤类:操作⽅法 (⽤于操作数据)和遍历⽅法 (⽤于遍历成 员)。下⾯先介绍四个操作⽅法。 add(value):添加某个值,返回Set结构本⾝。 delete(value):删除某个值,返回⼀个布尔值,表⽰删除是否成功。 has(value):返回⼀个布尔值,表⽰该值是否为Set的成员。 clear():清除所有成员,没有返回值。 上⾯这些属性和⽅法的实例如下。 s.add(1).add(2).add(2); // 注意2被加⼊了两次 s.size // 2 s.has(1) // true s.has(2) // true s.has(3) // false s.delete(2); s.has(2) // false 下⾯是⼀个对⽐,看看在判断是否包括⼀个键上⾯,Object结构和Set结构的写法 不同。 // 对象的写法 var properties = width: 1, height: 1 }; if (properties[someName]) // do something } // Set的写法 var properties = new Set(); properties.add(width); properties.add(height); if (properties.has(someName)) // do something }

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档