es6 Map&Set

Posted essaycode

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了es6 Map&Set相关的知识,希望对你有一定的参考价值。

<script type="text/javascript">

    // map基本使用
    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
    for(let[key,value] of map){
        console.log(key,value);
    }

    // forEach
    map.forEach(function(value,key){
        console.log(value,key);
    })

    console.log(‘所有的key‘);
    for(let key of map.keys()){
        console.log(key)
    }

    console.log(‘所有的值‘);
    for(let value of map.values()){
        console.log(value);
    }

    // Map对象操作
    // Map与Array转换
    // 数组转Map
    let arr=[[‘k1‘,‘v1‘],[‘k2‘,‘v2‘]];
    let map2=new Map(arr);
    console.log(map2);

    // Map转数组
    let arr2=Array.from(map2);
    console.log(arr2);

    // Map合并
    let map3=new Map([...map,...map2]);
    console.log(map3);

    // 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(‘张三‘);
    console.log(mySet);

    // set遍历
    // for ...of
    for(let value of mySet.values()){
        console.log(value);
    }
    mySet.forEach(function(value){
       console.log(value)
    });

    // Set数组转换
    let arr3=[[‘k1‘,‘v1‘],[‘k2‘,‘v2‘]];
    let set3=new Set(arr3);
    console.log(set3)

    let arr4=[...set3];
    console.log(arr4)

    // 数组去重

    let arr5=[1,3,5,3,6];
    let set6=new Set(arr5);
    let arr6=[...set6];
    console.log(‘数组去重‘)
    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(‘求并集‘)
    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(‘求交集‘)
    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(‘求差集‘)
    console.log(difference)

</script>

 

以上是关于es6 Map&Set的主要内容,如果未能解决你的问题,请参考以下文章

ES6:数据结构Set和Map&WeakSet和WeakMap

ES6新特性:Set和Map

代码片段 - Golang 实现集合操作

JavaScript--Map & Set

peptide map DDA和IMS有啥区别

ES6的新特性(12)——Set 和 Map 数据结构