Happy New Year!

11.ES6之Set and Map


-------------------------------------------

ES6


箭头函数


很重要

-------------------------------------------


let f =v=>v


var fun=(x,y)=>{func();}


调用函数


let f=v=>a(y);

function a(v){
console.log(v*v);
}

 

-------------------------------------------.

rest 参数

...a

let f=(...nums)=>a(...nums);

function a(v){
console.log(v*v);
}

f(1,2,3,4,5)


... 扩展运算符

-------------------------------------------

合并数组 ES5的方法

var arr1 = [1,2];

arr1.concat([3,4,5,6]);//得到的就是1 2 3 4 5

arr1

------------------

ES6 写法 数组合并

let arr = [4,5];


[1,2,3,...arr]


[1, 2, 3, 4, 5]

------------------------

例子二

let arr = [4,5];

[...arr,1,2,3,]


[4,5,1,2,3]

------------------

let arr1=[4,5];

let arr2=[1,2,3];

//定义了两个数组

let ss = [...arr1,...arr2];//两个数组合并 可以合并多个


//顺序要注意下 !!!!

------------------------------------


set 和 Map


类似数组 成员必须是唯一的(不能重复的值)

重复的会被过滤

本身是一个构造函数

Set (和数组很像,但是不能重复值,成员唯一。一个集合)

const arr4 = new Set();//实例 固定写法

const arr4 = new Set().add(1).add(2);//添加的方法1


添加方法2

arr4.add(1);//添加数据
arr4.add(2);//添加数据
arr4.add(3);//添加数据


conts arr4 = new Set([1,2,3,4]);//添加数据 方法3


//成员的总数 属性 Set 属性 size

size


//长度 成员的总数(属性)
arr4.size


//长度 如果有重复的 会有去重的操作 去重


------------------------------------

删除

arr4.delete(对应的值);// 返回 布尔值

has(对应的值);//布尔值 判断是不是里面的成员


clear();//全部删除 没有对应的返回值 不用传参!


如果里面有重复的两个a 删一个a a都没有了!


------------------------------------

删除演示:

const arrs = new Set(['a','b','c','d','e']);
arrs.delete('a');//删除的是对应的成员名称

arrs.has('a');

------------------------------------

全部删除

arrs.clear();//全部删除 没有对应的返回值 不用传参!


------------------------------------

set 转数组(Set 结构转数组)

const arr7 = new Set(['a','b','c','d','e']);
let arr2 = Array.from(arr7);//set 转 数组 方法

 

//可以借助Set 去重

------------------------------------
ES5 遍历

for ...of

for...in


const arr8 = new Set(['a','b','c','d','e']);


for(let list of arr8.keys()){
console.log(list);
}

//遍历 a-e

------------------------------------

values();//值的遍历


const arr8 = new Set(['a','b','c','d','e']);
for(let list of arr8.values()){
console.log(list);
}

------------------------------------

entries();//键值对 的遍历


const arr8 = new Set(['a','b','c','d','e']);
for(let list of arr8.entries()){//entries()
console.log(list);
}

//["a", "a"]

//["b", "b"]

//["c", "c"]
//["d", "d"]
//["e", "e"]

------------------------------------


Set 合并

const arr8 = new Set(['a','b','c','d','e']);

const arr9 = new Set(['a','b','c','d','e']);

const arr10 = [...arr8,...arr9];//合并


------------------------------------

取交集

const a = new Set(['a','b','c','d','a','b']);

const b = new Set(['a','e','r']);

const c = new Set([...a].filter(x=>b.has(x)));


//得出 a

------------------------------------

Map 和对象很像 有对应的键值对(键值对的的集合)

//也是不能重复


const m = new Map();
let str = {x:111};
m.set('shaozhu','520');//添加成员 set();
m.set(str,'520');//可以是变量
m.get("shaozhu");//获取值


同样拥有下面的属性和方法

has()//是否存在
delete()//删除
clear()//全部删除
size//成员数

-----------------------------------------

//取值更加方便了


const my = new Map({//键值对数组
['name','shaozhu'],
['name1','shaozhu'],
['name2','shaozhu']
});

for(let list of my.keys()){
console.log(list);
}

这个是SET 完全一样

keys();//键
values();//值
entries();//键值

可以操作 Set 的例子

转数组 Array.from(arr7);

 

-----------------------------------------

 

posted @ 2018-03-25 16:01  义美-小义  阅读(133)  评论(0编辑  收藏  举报
返回顶部小火箭
世界很公平,想要最好,就一定得付出!
x
github主页