1、set的用法

用add方法添加元素,添加的数组不可重复。

可利用set类型添加元素不重复的功能,给数组完成去重的功能

size属性用于获取set元素的长度

{
let list =new Set();
list.add(5);
list.add(7);
console.log("size",list.size); //2
} {
let arr=[1,2,3,4,5];
let list=new Set(arr);
console.log(list.size); //2
} {
let list=new Set();
list.add(1);
list.add(2);
list.add(1); console.log("list",list) // {1,2}
}

 但是set不会进行数据类型的转换

//set 不会进行数据类型的转换
let arr=[1,2,3,12,1,2,"2"];
let list2=new Set(arr);
console.log("list2",list2); //{1, 2, 3, 12, "2"}

 set的一些方法

.add()添加

.delete() 删除

.clear() 清除

.has()  是否有

let arr=["add","delete","clear","has"];
let list=new Set(arr);
console.log(list.has("add"));
console.log("delete",list.delete("add"),list);
list.clear();
console.log("list",list);

set的遍历(key值==value值)

    //读取
console.log("set的读取");
let arr=["add","delete","clear","has"];
let list=new Set(arr);
for(let index of list.keys()){
console.log("keys",index);
}
for(let value of list.values()){
console.log("value",value);
}
for(let [index,value] of list.entries()){
console.log("entries",index,value);
}  

  

weakSet 

//weakSet
/*
* weakSet是一个弱引用,只能是一个对象,没有size属性
* 没有clear方法
* 没有遍历属性
* */
let weakList=new WeakSet();
let arg={};
weakList.add(arg);
console.log("weakList",weakList);

 

map

{
//map的定义方法1
let map=new Map();
let arr=["123"];
map.set(arr,456);
console.log("map",map,map.get(arr));
} { //map的定义方法2
let map=new Map([["a",123],["b",456]]);
console.log("map args",map); //map的方法
console.log("size",map.size);
console.log("delete",map.delete("a"),map);
console.log("clear",map.clear(),map); }

  

weakMap

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

  

对比

//map、set、object对比
let item={t:1};
let map=new Map();
set =new Set();
let obj={}; //增
map.set("t",1);
set.add(item);
obj["t"]=1;
console.log("map-set-obj",map,set,obj); //查
console.info({
map_exist:map.has("t"),
set_exist:set.has(item),
obj_exist:"t" in obj
}) //改
map.set("t",2);
// set.forEach(item=>item.t?item.t=2:"");
item.t=2;
obj["t"]=2;
console.log("map-set-obj-change",map,set,obj); //删
map.delete("t");
set.delete(item);
delete obj["t"];
console.log("map-set-obj",map,set,obj);

  

es6之数据结构的更多相关文章

  1. ES6新数据结构Set让数组去重

    function unique(array){ return Array.from(new Set(array)); } var arr = ['aa','bb','cc','',1,0,'1',1, ...

  2. ES6 Map数据结构

    Map JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键.这给它的使用带来了很大的限制. ES6 提供了 Map 数据结构.它类似于对 ...

  3. ES6 Set数据结构

    Set ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. const s = new Set(); // const声明一个只读的常量.一旦声明,常量的值就不能 ...

  4. es6之数据结构 set,WeakSet,mapWeakMap

    { let list = new Set(); list.add(1); list.add(2); list.add(1); console.log(list); //Set(2) {1, 2} le ...

  5. es6 -- set 数据结构

    ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. const s = new Set(); [2, 3 ...

  6. ES6——新增数据结构Set与Map的用法

    ES6 提供了新的数据结构 Set以及Map,下面我们来一一讲解. 一.Set 特性 似于数组,但它的一大特性就是所有元素都是唯一的,没有重复. 我们可以利用这一唯一特性进行数组的去重工作. 1.单一 ...

  7. ES6(数据结构_2)

    数据结构—2 Map 与 Array 的对比 Set 与 Array的对比 Map 与 Object 的对比 Set 与 Object 的对比 (增.查.改.删) 一.Map 与 Array 的对比 ...

  8. ES6 WeakSet数据结构 与Set十分相似

    它与Set十分相似,对象的值也不能是重复的,与Set不同点: .WeakSet成员只能够是对象. .作为WeakSet成员的对象都是弱引用,即垃圾回收机制不考虑WeakSet对该对象的引用,也就是说, ...

  9. ES6 .Set数据结构去除重复元素

    用法一 var set = new Set([1, 2, 3, 4, 2, 8, 4]); //两个2 for (var elem of set) { console.log(elem) // 输出结 ...

随机推荐

  1. 修改npm包管理器的registry为淘宝镜像(npm.taobao.org)<转>

    起因 安装了node,安装了npm之后,官方的源实在是 太慢了! 看了看淘宝的npm镜像,  http://npm.taobao.org/ 竟然说让我再下载一个cnpm,要不然就每次都得install ...

  2. 01.MD5加密

    namespace _01.MD5加密 { class Program { static void Main(string[] args) { //MD5加密就是给想要的密码或者其它字符加密 //如果 ...

  3. rabbit工作队列模式

    工作队列比简单队列在消费者这边多了一个方法. channel.basicQos(1);公平队列消费(参数设置为1,表示消费者消费完一条才会去接受再次发来的消息) 生产者: package com.kf ...

  4. Java Map类常用方法

    关于Map集合中常用的方法: void clear(); 清空Map boolean containsKey(Object key); 判断Map中是否包含这样的key boolean contain ...

  5. 基于easyUI实现权限管理系统(四)——用户管理

    此文章是基于 EasyUI+Knockout实现经典表单的查看.编辑 一. 相关文件介绍 1. user.jsp:用户管理界面 <!DOCTYPE html PUBLIC "-//W3 ...

  6. LeetCode Find Peak Element [TBD]

    说要写成对数时间复杂度,算了想不出来,写个O(n)的水了 class Solution { public: int findPeakElement(const vector<int> &a ...

  7. Css3新增背景属性

    1.background-origin 背景的起始位置 background-origin: border-box || padding-box || content-box; 案例初始化: 代码: ...

  8. React Native之React速学教程(中)

    概述 本篇为<React Native之React速学教程>的第一篇.本篇将从React的特点.如何使用React.JSX语法.组件(Component)以及组件的属性,状态等方面进行讲解 ...

  9. Unity导出APk出错解决方法二

    错误提示(需得打开编辑器log文件才能看到全部log,Unity3d只显示一部分): Error building Player: CommandInvokationFailure: Unable t ...

  10. react-native-echarts

    react-native-echarts是react native结合百度echart的图表,集成的一个图表插件. github地址:https://github.com/zhangxinagjunH ...