首页 > 代码库 > es6--(三)set和map数据结构

es6--(三)set和map数据结构

1.Set和WeakSet

 Set与数组相似,但是Set结构的成员必须是唯一的.

WeakSet与对象类型,但是WeakSet结构的成员只能是对象

 

Set结构的实例属性和方法

  属性:

    Set.prototype.constructor:构造函数

    Set.prototype.size:返回Set实例的成员总数

  方法:

    --add(value):添加值,返回Set结构本身

    --delete(value):删除某个值,返回一个布尔值

    --has(value):返回一个布尔值,判断该值是否为Set的成员

    --clear:清除所有成员,没有返回值

Set结构遍历方法:

  --keys:返回键对的遍历器

  --values:返回键值的遍历器

  --entries:返回键值对的遍历器

  --forEach:使用回调遍历每个成员

 1 //声明一个Set类型(一)
 2 var set = new Set([1,2,3,4,2,8,4]);
 3 //声明一个Set类型(二)
 4 var set = new Set();
 5 for(let i =0;i<5;i++){
 6     set.add(i);   
 7 }
 8 for(let elem of set){
 9     console.log(elem);  // 1,2,3,4,8
10 }

扩展运算符 (...),转成数组

var set = new Set();
[1,2,4,8,3,4].map(function(elem){
      set.add(elem);
});
console.log("set = "+set); //set = [object Set]
//扩展运算,将setL类型变成数组类型
var arr = [...set];
console.log("arr = " +arr);//arr = 1,2,4,8,3        

删除和清空

var set = new Set();
[1,2,4,8,3,4].map(function(elem){
      set.add(elem);
});
console.log("set = "+set); //set = [object Set]
set.delete(2); //删除2 arr = 1,4,8,3
set.clear();  //清空   arr=
//扩展运算,将setL类型变成数组类型
var arr = [...set];
console.log("arr = " +arr);//arr = 1,2,4,8,3 

遍历键值

var set = new Set();
[1,2,4,8,3,4].map(function(elem){
     set.add(elem);
});
//键和值是相同的
set.forEach(function(value,key){
   console.log(key + " = " + value);//1=1,2=2,3=3,4=4,8=8
});

 

 

  

  

es6--(三)set和map数据结构