Map Set iterable


 1 /*
 2         iterable
 3             遍历Array可以采用下标循环,遍历Map和Set就无法使用下标。
 4             为了统一集合类型,ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型。
 5             具有iterable类型的集合可以通过新的for ... of循环来遍历。
 6                 只循环集合本身的元素
 7             forEach
 8             iterable内置的forEach方法,它接收一个函数,每次迭代就自动回调该函数
 9     */
10     var a = ['a', 'b', 'c']
11     var s = new Set([1,2,3])
12     var ma = new Map([[1,'a'],[2,'b']])
13     for (var i of a){
14         console.log(a)
15     }
16     for (var i of s){
17         console.log(s)
18     }
19     for (var i of ma){
20         console.log(i[0]+'='+i[1])
21     }
22 
23     a.forEach(function (element, index, array) {
24         // element: 指向当前元素的值
25         // index: 指向当前索引
26         // array: 指向Array对象本身
27         console.log(element);
28     })
29     ma.forEach(function (value, key, map) {
30         console.log(value);
31     })

 

 1 <script>
 2     /*
 3         map是一组键值对的结构,具有极快的查找速度
 4         .get() 查找key-value
 5         .set() 添加新的key-value
 6             注:由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉
 7         .has() 是否存在
 8         .delete() 删除
 9     */
10     var m = new Map([['michael',95], ['bob',75]])
11     console.log(m.get('bob'))
12     console.log(m.set('bob',59))//{"michael" => 95, "bob" => 59}
13     console.log(m.has('bob'))
14     console.log(m.delete('bob',59))
15 
16     /*
17         Set
18             Set和Map类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key
19             重复元素在Set中自动被过滤
20         add(key) 添加元素
21         delete(key) 删除元素
22     */
23     var s1 = new Set()
24     var s2 = new Set([1,2,3,3])
25 
26     console.log(s2) //{1, 2, 3}
27 
28     s1.add('wow')
29     console.log(s1) 
30 
31     s2.delete(3)
32     console.log(s2)
33 
34 </script>

 

posted @ 2017-08-01 14:58  咬尾巴的狐狸  阅读(142)  评论(0编辑  收藏  举报