美文网首页
(二)14.set-map数据结构19-08-09

(二)14.set-map数据结构19-08-09

作者: 你坤儿姐 | 来源:发表于2019-08-09 18:04 被阅读0次
WechatIMG76.png
  • set
{
  //set的普通定义方法
  let list = new Set();
  list.add(5);
  list.add(7);

  console.log('size',list.size);
}

{
  let arr = [1,2,3,4,5];
  let list = new Set(arr);

  console.log('size',list.size);
}

打印结果:
2
5

{
  let list = new Set();
  list.add(1);
  list.add(2);
  list.add(1);
  console.log('list',list);//添加重复的元素不会报错,只是不会生效而已

  let arr=[1,2,3,1,2];
  let list2=new Set(arr);
  console.log('unique',list2);//set可以自动去除重复
}

打印结果:
list Set(2) {1, 2}
unique Set(3) {1, 2, 3}

{
  //set实例遍历
  let arr=['add','delete','clear','has'];
  let list=new Set(arr);

  //遍历出所有的key
  for (let key of list.keys()){
    console.log('keys',key);
  }
  //遍历出所有的value
  for (let value of list.values()){
    console.log('value',value);
  }
  //遍历出所有的value
  for (let [key,value] of list.entries()){
    console.log('entries',key,value);
  }

  list.forEach(function (item) {
    console.log(item)
  })
}

打印结果:
keys add
keys delete
keys clear
keys has

value add
value delete
value clear
value has

entries add add
entries delete delete
entries clear clear
entries has has

add
delete
clear
has

  • WeakSet
{
  //WeakSet添加 不是直接把值添加过来 是地址的引用 它也不会检测这个地址是不是已经被垃圾回收掉了
  //WeakSet没有clear方法、set属性,不能遍历
  let weakList=new WeakSet();

  let arg={};

  weakList.add(arg);

  // weakList.add(2);//这样写会报错,因为它只支持对象

  console.log('weakList',weakList);
}

打印结果:
weakList WeakSet {{…}}

  • map
{
  //map的基本定义方式
  let map = new Map();
  let arr = ['123'];

  map.set(arr,456)//map添加元素用set,set添加元素用add
  //map的特性是可以使用任何数据类型做key,这里的key是arr,是数组类型

  console.log('map',map,map.get(arr));
}
  • 打印结果:
    map Map(1) {Array(1) => 456} 456
{
  //map的第二种定义方式
  let map = new Map([['a',123],['b',456]]);
  console.log('map args',map);
  console.log('size',map.size);
  console.log('delete',map.delete('a'),map);
  console.log('clear',map.clear(),map);
}

打印结果:
map args Map(2) {"a" => 123, "b" => 456}
size 2
delete true Map(1) {"b" => 456}
clear undefined Map(0) {}

  • Weakmap
{
  //WeakMap 接收的key值也必须是对象 不能是其他的
  //也没有set属性
  let weakmap=new WeakMap();

  let o={};
  weakmap.set(o,123);
  console.log(weakmap.get(o));
;}

打印结果:123

相关文章

网友评论

      本文标题:(二)14.set-map数据结构19-08-09

      本文链接:https://www.haomeiwen.com/subject/psehjctx.html