ES6新增Map、Set和iterable

Map需要一个二维数组

var test_map = new Map(["mians",99],["regink",88])

test_map.get("mians")  //返回99

test_map.set("mians", 77)  //修改值

test_map.has("mians")  //检测包含key

test_map.delete("mians")  //删除元素

Set保存key,无重复key

var test_set = new Set([1,2,3,'3']);

 

ES6中,Array、Map和Set都属于iterable类型

具有方法for..of和forEach

for...of和for...in的区别

for..in遍历的实际上是对象的属性名称,一个Array数组实际上也是一个对象,每一个元素的索引被视为一个属性。手动给Array增加属性之后,for...in循环输出意想不到的结果

eg:var arr = ['a','b','c']

  arr.name = 'ddd'

  for(var i in arr){

    console.log(i)  //a,b,c,name,但是arr的length仍然为3

  }

for ...in循环将name包含在内,但是arr的length并没有改变

但是for..of完美解决了这个问题,只循环Array本身

 

forEach用法

Set类型:arr.forEach(function(element,sameElement,set本身){})

Map类型:arr.forEach(function(value,key,map本身){})

而Array可以直接获取element就可以:arr.forEach(function(element){})

posted @ 2018-09-20 21:08  Pearl_Ran  阅读(256)  评论(0编辑  收藏  举报