es6之数据结构
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之数据结构的更多相关文章
- ES6新数据结构Set让数组去重
function unique(array){ return Array.from(new Set(array)); } var arr = ['aa','bb','cc','',1,0,'1',1, ...
- ES6 Map数据结构
Map JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键.这给它的使用带来了很大的限制. ES6 提供了 Map 数据结构.它类似于对 ...
- ES6 Set数据结构
Set ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. const s = new Set(); // const声明一个只读的常量.一旦声明,常量的值就不能 ...
- 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 ...
- es6 -- set 数据结构
ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. const s = new Set(); [2, 3 ...
- ES6——新增数据结构Set与Map的用法
ES6 提供了新的数据结构 Set以及Map,下面我们来一一讲解. 一.Set 特性 似于数组,但它的一大特性就是所有元素都是唯一的,没有重复. 我们可以利用这一唯一特性进行数组的去重工作. 1.单一 ...
- ES6(数据结构_2)
数据结构—2 Map 与 Array 的对比 Set 与 Array的对比 Map 与 Object 的对比 Set 与 Object 的对比 (增.查.改.删) 一.Map 与 Array 的对比 ...
- ES6 WeakSet数据结构 与Set十分相似
它与Set十分相似,对象的值也不能是重复的,与Set不同点: .WeakSet成员只能够是对象. .作为WeakSet成员的对象都是弱引用,即垃圾回收机制不考虑WeakSet对该对象的引用,也就是说, ...
- ES6 .Set数据结构去除重复元素
用法一 var set = new Set([1, 2, 3, 4, 2, 8, 4]); //两个2 for (var elem of set) { console.log(elem) // 输出结 ...
随机推荐
- Node.js学习笔记(四) --- fs模块的使用
目录 . fs.stat 检测是文件还是目录 . fs.mkdir 创建目录 . fs.writeFile 创建写入文件 . fs.appendFile 追加文件 . fs.readFile 读取文件 ...
- centos top 命令详解及退出top命令-使用p键及free命令
1.作用 top命令用来显示执行中的程序进程,使用权限是所有用户. 2.格式 top [-] [d delay] [q] [c] [S] [s] [i] [n] 3.主要参数 d:指定更新的间隔,以秒 ...
- zookeeper【4】master选举
考虑7*24小时向外提供服务的系统,不能有单点故障,于是我们使用集群,采用的是Master+Slave.集群中有一台主机和多台备机,由主机向外提 供服务,备机监听主机状态,一旦主机宕机,备机必需迅速接 ...
- Win10自带Ubuntu子系统下Mysql安装踩坑记录
linux系统为win10自带Ubuntu子系统 错误的安装过程 我按照一般的方法安装mysql,安装步骤如下 1.升级源 $ sudo apt-get update 2.安装mysql $ sudo ...
- eclipse中php项目开发的环境配置说明
PHP开发的环境配置比Java开发要简单点,也就是我们不用安装jdk了,我们不用安装tomcat了,仅仅通过一种集成环境来安装就好了. PHP开发,其实有很多种环境配置方式,我这里使用了XAMPP进行 ...
- C Primer Plus note8
error: too few arguments to function 'imax'| 运行上面的代码,产生了下面的错误: 中文翻译是:函数imax()中的参数太少. 查看imax()函数声明,发现 ...
- JS判断数字类型
JavaScript判断输入是否为数字类型的方法总结 前言 很多时候需要判断一个输入是否位数字,下面简单列举集中方法. 第一种方法 isNaN isNaN 返回一个 Boolean 值,指明提供的值是 ...
- Grunt usemin前端自动化打包流程
前端优化是尽量减少http请求,所以我们需要尽量合并压缩文件,然后调用压缩后的文件,比如多个css文件压缩成一个,多个js文件合并压缩等,usemin能够自动在html中使用压缩后的文件,达到上面的目 ...
- 织梦后台添加友情链接的方法(flink标签)
标记名称:flink[标签简介][功能说明]:用于获取友情链接,其对应后台文件为"includetaglibflink.lib.php".[适用范围]:全局标记,适用V55,V56 ...
- JavaScript中实现DI的原理(二)
JavaScript中实现DI的原理 在JavaScript中实现DI,看起来难,实际上原理很简单,它的核心技术是Function对象的toString().我们都知道,对一个函数对象执行toStri ...