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>