ES6 Set集合

        let set=new Set();         Set 实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)。下面先介绍四个操作方法。         add(value):添加某个值,返回 Set 结构本身。         delete(value):删除某个值,返回一个布尔值,表示删除是否成功。         has(value):返回一个布尔值,表示该值是否为Set的成员。         clear():清除所有成员,没有返回值。         Array.from方法可以将 Set 结构转为数组。(由于Set集合实现了Iterator接口,因此也可以使用扩展运算符...将 Set 结构转为数组)
        Set 结构的实例有四个遍历方法,可以用于遍历成员。         keys():返回键名的遍历器         values():返回键值的遍历器         entries():返回键值对的遍历器         forEach():使用回调函数遍历每个成员         需要特别指出的是,Set的遍历顺序就是插入顺序。         由于 Set 结构没有键名,只有键值(或者说键名和键值是同一个值),所以keys方法和values方法的行为完全一致。         Set 结构的实例认可遍历,它的认遍历器生成函数就是它的values方法。         这意味着,可以省略values方法,直接用for...of循环遍历 Set。         扩展运算符(...)内部使用for...of循环,所以也可以用于 Set 结构。  
 1         keys():返回键名的遍历器
 2         let set5 = new Set([4, 5, 'hello'])
 3         console.log('iterate useing Set.keys()')
 4         for(let item of set5.keys()) {
 5           console.log(item)
 6         }
 7         输出:iterate useing Set.keys()  4   5   hello
 8 
 9         values():返回键值的遍历器
10         console.log('iterate useing Set.values()')
11         for(let item of set5.values()) {
12           console.log(item)
13         }
14         输出:iterate useing Set.keys()  4   5   hello
15         如上述:由于 Set 结构没有键名,只有键值(或者说键名和键值是同一个值),所以keys方法和values方法的行为完全一致。
16 
17         entries():返回键值对的遍历器
18         console.log('iterate useing Set.entries()')
19         for(let item of set5.entries()) {
20           console.log(item)
21         }
22         输出:iterate useing Set.entries()  [ 4, 4 ]  [ 5, 5 ]    [ 'hello', 'hello' ]

应用

 1         let arr = ['1', '2', '3', '2', '3', '4', '5']
 2         let arr1 = ['4', '1', '3', '6']
 3 
 4         //arr去重
 5         let result = new Set(arr)
 6         console.log(result);// Set类型。输出 1,2,3,4,5
 7         // 转换成数组类型 由于Set集合实现了Iterator接口,因此可以使用扩展运算符...
 8         console.log([...result]); // Array类型 [1,2,3,4,5]
 9 
10         //arr和arr1交集
11         console.log([...new Set([...arr, ...arr1])]); //Array类型 [1,2,3,4,5,6]
12 
13         //并集
14         let common = [...new Set(arr)].filter(item => new Set(arr1).has(item))
15         console.log(common); // Array类型 [1,3,4]
16 
17         //差集
18         let diff = [...new Set(arr)].filter(item => !(new Set(arr1).has(item)))
19         console.log(diff); // Array类型 [2,5]

 Map对象

 1         //  Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。
 2         //  Map 的键值对个数可以从 size 属性获取
 3         let m = new Map();
 4 
 5         //新增 
 6         m.set('name', 'map')
 7         m.set('age', '不详')
 8         // console.log(m) // 'name' => 'map'
 9 
10         let key = {
11             team: 'RNG'
12         }
13         m.set(key, 'UZI')
14         // console.log(m) // { 'name' => 'map',{team:'RNG'}=>'UZI'}
15 
16         //删除
17         m.delete(key)
18         console.log(m) // 'name' => 'map'
19 
20         // 遍历
21         for(let i of m){
22             console.log(i) // Array 类型 ['name', 'map']  ['age', '不详']
23         }
24 
25         // 清空
26         m.clear()
27         console.log(m) // Map(0) {size: 0}

 

相关文章

原文连接:https://www.cnblogs.com/dupd/p/5951311.htmlES6...
以为Es6,javascript第一次支持了module。ES6的模块化分为导...
视频讲解关于异步处理,ES5的回调使我们陷入地狱,ES6的Prom...
TypeScript什么是TypeScript?TypeScript是由微软开发的一款开...
export class AppComponent { title = 'Tour of heroes...
用 async/await 来处理异步昨天看了一篇vue的教程,作者用as...