zoukankan      html  css  js  c++  java
  • 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);

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

  • 相关阅读:
    vs2015调试慢
    阿里正式发布《Java开发手册》终极版!
    为什么听有些人讲话让人抓狂
    hibernate 映射实例 学生 课程 成绩
    hibernate 树状映射
    hibernate 一对多双向的CURD
    hibernate 多对多双向关联
    hibernate 多对多单向
    hibernate 一对多双向
    hibernate 一对多关联
  • 原文地址:https://www.cnblogs.com/shaozhu520/p/8645101.html
Copyright © 2011-2022 走看看