java1234开源博客系统
博客信息

es6 Map与Set

发布时间:『 2019-07-09 11:38』  博客类别:Vue.js  阅读(2414) 评论(0)

es6 Map与Set


QQ鎴浘20190709113632.jpg

// 基本使用 key是基本类型

    let map=new Map();

    map.set('name','张三');

    map.set('age',11);

    map.set('已婚',false);

    console.log(map.get('name'));

    console.log(map.get('age'));

    console.log(map.get('已婚'));


    // key是对象

    let obj={};

    map.set(obj,'对象');

    console.log(map.get(obj));


    // key是函数

    let func=function(){};

    map.set(func,'函数');

    console.log(map.get(func));


    // key是NaN

    map.set(NaN,'NaN');

    console.log(map.get(NaN));

    console.log(map.get(Number('aaa')));


    // Map迭代

    // for ...of

    let map2=new Map();

    map2.set('name','张三');

    map2.set('age',11);

    map2.set('已婚',false);

    for(let [key,value] of map2){

        console.log(key,value)

    }


    // 查询所有key

    for(let key of map2.keys()){

        console.log(key)

    }


    // 查询所有value

    for(let value of map2.values()){

        console.log(value)

    }



    // forEach方法迭代

    map2.forEach(function(value,key){

        console.log(key,value)

    });


    // Map对象操作

    // Map与Array转换

    // 数组转Map

    let arr=[['k1','v1'],['k2','v2']];

    let map3=new Map(arr);

    map3.forEach(function(value,key){

        console.log(key,value)

    });

    // Map转数组

    let arr2=Array.from(map3);

    console.log(arr2);


    // Map合并

    let map4=new Map([...map3,...map2]);

    console.log(map4)


    // Set对象

    // Set里的value值是唯一的

    let myMap=new Map();

    myMap.set('no001','张三');

    myMap.set('no002','李四');

    myMap.set('no003','张三');

    console.log(myMap);


    let mySet=new Set();

    mySet.add('张三');

    mySet.add('李四');

    mySet.add('张三');

    // 遍历

    for(let value of mySet.values()){

        console.log(value)

    }

    mySet.forEach(function(value){

        console.log(value)

    });


    // Set 数组转换

    // 数组 转Set

    let arr3=[['k1','v1'],['k2','v2']];

    let set3=new Set(arr3);

    console.log(set3)


    // set转数组

    let arr4=[...set3];

    console.log(arr4)


    // 数组去重

    let arr5=[1,3,5,3,6];

    let set6=new Set(arr5);

    let arr6=[...set6];

    console.log(arr6)


    // 求并集

    let a = new Set([1, 2, 3]);

    let b = new Set([4, 3, 2]);

    let union = new Set([...a, ...b]); // {1, 2, 3, 4}

    console.log(union)


    // 求交集

    let a2 = new Set([1, 2, 3]);

    let b2 = new Set([4, 3, 2]);

    let intersect = new Set([...a2].filter(x => b2.has(x))); // {2, 3}

    console.log(intersect)


    // 求差集

    let a3 = new Set([1, 2, 3]);

    let b3 = new Set([4, 3, 2]);

    let difference = new Set([...a3].filter(x => !b3.has(x))); // {1}

    console.log(difference)


关键字:   无

上一篇:vue生命周期

下一篇:vue-cli脚手架安装

关注Java1234微信公众号
博主信息
Java1234_小锋
(知识改变命运,技术改变世界)
Powered by Java1234 V3.0 Copyright © 2012-2016 Java知识分享网 版权所有