Set的用法

set的key一定是字符串

{

let list=new Set(); list.add(5);//向set中增加值要用add() list.add(6); console.log('size',list.size);//set的长度要用size

}

结果为size 2

还有一种声明方法,在set初始化时就定义值

{ let arr=[1,2,3,4,5];

let list=new Set(arr);

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

结果为size 5

size中的数据是唯一的,如果添加进去重复的数据,不会报错,但是只会显示一个,这种特性可以用来去重

{ let list=new Set();

list.add(1);

list.add(2);

list.add(1);

console.log('list',list);

}

上面的代码中多添加了一个1,但是只会显示一个1

let arr=[1,2,3,1,2];

let list2=new Set(arr);

console.log('list2',list2);

set不会转换数据类型

let arr=[1,2,3,1,'2'];//前面的2是数值,后面的2是字符

let list2=new Set(arr);

console.log('list2',list2);

set方法

添加:add

删除:delete

清空:clear

查看是否有某元素:has

遍历

{

let arr=[1,2];

let list=new Set(arr);

//遍历

for(let key of list.keys())

{ console.log('key ',key); }
for(let value of list.values())

{ console.log('value ',value); }

//如果不加方法,默认的会是value值

for(let value of list)

{ console.log('value/ ',value); }

for(let [key,value] of list.entries())

{ console.log('key,value ',key,value); }

}

遍历还可以使用forEach

list.forEach(function(item)

{ console.log('item',item); })

WeakSet的用法

WeakSet和Set支持的数据不一样吗,weakset的元素只能时候对象

weakset是一个弱引用,不会去检测是否与垃圾回收机制挂钩上

{

{ let weaklist=new WeakSet();

let arg={};//这个是一个对象

weaklist.add(arg);

console.log('weaklist',weaklist);

}

如果是weaklist.add(2);这样会报错

weakset没有clear方法

weakset没有set属性

weakset不能遍历

其他和set一样

Map的用法

map的key可以是多种类型

{ //声明

let map=new Map();

let ar=['123']; map.set(ar,456);//添加元素

console.log('map',map,map.get(ar));

}

还有初始化时赋值

{ let map=new Map([['a',123],['b',456 ]]);

console.log('map args',map); }

map的方法

求大小:size

获取值:get

添加值:set

删除:delete

清空:clear

遍历

和set一模一样

WeakMap的用法

weakmap与map的区别可以对比weakset与set的区别来验证

最新文章

  1. 【CSS3】 线性渐变
  2. spring这么流行的原因是什么
  3. [Angularjs]视图和路由(三)
  4. 前端技术-svg简介与snap.svg.js开源项目的使用
  5. 使用Html5下WebSocket搭建简易聊天室
  6. 201521123053《Java程序设计》第十二周学习总结
  7. 对于hive使用的一点记录
  8. python解释NTFS runlist的代码(文章转自北亚数据恢复张宇工程师)
  9. linux service 简单易懂贴
  10. HttpServerUtility常用方法
  11. asyncio queue
  12. qtftp 客户端
  13. Linux内存管理学习2 —— head.S中的段页表的建立
  14. 【R】自定义函数方法
  15. How Not to Crash系列地址
  16. 浏览器根对象document之字符串属性
  17. python第十八课——常用内置函数
  18. Dsniff简介
  19. 【Nginx】均衡负载权重模式实现session数据同步
  20. 在浏览器中体验 Ubuntu

热门文章

  1. Spring MVC-控制器(Controller)-属性方法名称解析器(Properties Method Name Resolver )示例(转载实践)
  2. Oracle_Data_Gard Create a physical standby database
  3. 一起talk C栗子吧(第七十七回:C语言实例--DIY ls命令续)
  4. [RxJS] AsyncSubject and ReplaySubject - Learn the Differences
  5. Latex 排版技巧 1——数学公式对齐
  6. HDOJ 5417 Victor and Machine 水
  7. 1215-Cannot add foreign key constraint
  8. NS3网络仿真(5): 数据包分析
  9. Xcode 自己主动生成版本技术最佳实践
  10. WPF学习笔记——为BUTTON添加背景图片