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) // 输出结 ...
随机推荐
- ASP.NET MVC4 新手入门教程之八 ---8.向模式中添加验证
在这本部分会将验证逻辑添加到Movie模式,和你会确保验证规则执行任何时候用户试图创建或编辑使用该应用程序的一部电影. 保持事物的干练性 ASP.NET MVC 的核心设计信条之一是 DRY(”Don ...
- 二分查找——Python实现
一.排序思想 二分(折半)查找思想请参见:https://www.cnblogs.com/luomeng/p/10585291.html 二.python实现 def binarySearchDemo ...
- JavaScript--3种函数调用的方法
1.函数的简单调用: <script > function fn(p){ alert(p); } </script> <body><script> fn ...
- thinkphp中ajax接收参数值
if(IS_AJAX) { $oldpwd=I('param.oldpwd'); }
- 纪念一个神坑——react-native-echarts
一.问题 在rn项目里引用的时候,本该显示图表的界面显示出了一堆html... 二.原因 官方没给配置好 三.解决 1./node_modules/native-echarts/src/compone ...
- HTML5 localstorage和session操作
setStorage={ getLocal : function(key){ //获得localStorage里面的值 var storage = window.localStorage; if(st ...
- endwith与startwith字符串方法匹配重写
endwith与startwith字符串方法匹配重写 在js读取文件信息并判断文件的格式类型时出现问题,并找到解决方案,写下来与大家分享,共勉. ---DanlV 描述 本人在上传MP3格式文件时,需 ...
- UX2内核浏览加速技术纲要[带你解决WebView卡顿]
UX2内核是本人负责主要开发的浏览服务项目,其主要目的是为开发者提供一个简单好用.轻便的网络浏览服务.UX2内核的安卓端是基于WebView进行深度优化的,同时欢迎大家使用这个内核用于app页面或浏览 ...
- C语言归并排序
这篇文章是学习了小甲鱼-数据结构与算法结合自考教材编写出的代码,希望自己逐渐在算法造诣上能更上一层楼. 归并排序(递归实现) “归并”一词在中文含义中就是合并的意思,而在数据结构中的定义是将两个或者两 ...
- Oracle中创建Job实现自动插入值操作
在PL/SQL Developer中创建Job --临时测试表 create table test_job ( id ), c_date date ); --临时序列 create sequence ...