【es6笔记】es6的入门简介_Set_Map(7)

这里整理了Set和Map相关的内容。

<!DOCType html>
<html>

<head>
    <meta charset="utf-8">
    <title></title>
</head>

<body>
    <script>
        console.log("--------------Set 集合--------------");
        /*
        类似于数组,但是成员的值都是唯一。集合实现了iterator接口,所以可以用for...of循环遍历。
        集合常用的方法 size, add ,delete, has
        */
        let s = new Set();
        let s1 = new Set(['小明', '小红', '小刚']);
        console.log(s1);//Set(3) {'小明', '小红', '小刚'}
        console.log(s1.size); //3
        s1.add('小白');
        console.log(s1); //Set(4) {'小明', '小红', '小刚', '小白'}
        s1.add('小白');
        console.log(s1); //Set(4) {'小明', '小红', '小刚', '小白'}

        s1.delete('小白');
        console.log(s1);//Set(3) {'小明', '小红', '小刚'}

        s1.clear();
        console.log(s1); //Set(0) {size: 0}

        //Set 实践
        //1.数组去重
        let arr = [1, 2, 3, 4, 5, 3, 2, 1];
        let s3 = [... new Set(arr)]
        console.log(s3); // (5) [1, 2, 3, 4, 5]

        //2.交集
        let arr2 = [2, 4, 7, 8];
        let s4 = [... new Set(arr)].filter(item => {
            let s5 = new Set(arr2);
            if (s5.has(item)) {
                return true;
            } else {
                return false;
            }
        });

        console.log(s4); //(2) [2, 4]

        //简化
        let s5 = [...new Set(arr)].filter(item => new Set(arr2).has(item));
        console.log(s5); //(2) [2, 4]

        //3.并集
        let s6 = new Set([...arr,...arr2]);
        console.log(s6); //Set(7) {1, 2, 3, 4, 5, 7, 8}

        //4.差集
        let s7 = [...new Set(arr)].filter(item => !new Set(arr2).has(item));
        console.log(s7); //(3) [1, 3, 5]

        console.log("-------------- Map --------------");
        /*
        Map是一个数据结构,键值对的集合。键不限于字符串,各种类型的值(包括对象)都可以当作键。
        也实现了iterator接口。可以使用扩展运算符和 for of
        常用方法: size, set, get, has, clear
        */

        let m = new Map();
        let m1 = new Map([['小明', '男'], ['小红', '女'], ['小刚', '男']]);

        m.set('name', '小明');
        m.set('age', 18);
        m.set('run', function () {
            console.log('running');
        });

        let key = {
            city: '北京'
        }

        m.set(key, ['朝阳','海淀', '顺义']);

        console.log(m); //Map(4) {name: "小明", age: 18, run: ƒ, {city: "北京"}: Array(3)}

        m.delete('name');
        console.log(m.get('run'));

        console.log(m.size); //3

        for(let v of m) {
            console.log(v);
        }
        //(2) ['age', 18]
        // ['run', ƒ]
        //(2) [{…}, Array(3)]

    </script>
</body>

</html>

欢迎大家的意见和交流

email: li_mingxie@163.com