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>