web前端练习17----es6新语法4,数组,Set集合,Map集合

Posted zhaihaohao1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web前端练习17----es6新语法4,数组,Set集合,Map集合相关的知识,希望对你有一定的参考价值。

一、Array数组

百度搜索 mdn 数组

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array

1、数组创建

        // 创建数组
        var fruits = ['Apple', 'Banana', '梨子', '橘子', '桃子', '1', '2'];

2、添加元素在数组末尾

        fruits.push('Orange');

3、删除数组末尾元素

        // 删除数组末尾元素
        fruits.pop();

4、数组中是否包含某个元素 includes() 返回true或false

        console.log(fruits.includes('2'));

5、数组中是否包含某个元素 array.indexOf() 返回下标或者-1

        // array.indexOf() 数组中是否存在某个字符串
        function method3() 
            let iarray = ['刘备', '关羽', '张飞', '赵云', '马超'];
            // 数组中存在这个字符串,返回对应索引值 4
            let iiarray = iarray.indexOf('马超');
            console.log(iiarray);

            // 数字组中不存在这个字符串,返回-1
            let iiiarray = iarray.indexOf('zhh');
            console.log(iiiarray);

        
        method3();

 

6.1、Array.from() 类数组(htmlCollection集合)转成数组的第一种方法

        // Array.from() 类数组转成数组
        function method1() 
            // 和对象的写法很像
            // 类数组满足条件:有下标,有length 
            let obj = 
                0: '0',
                1: '1',
                2: '2',
                3: '3',
                length: 4
            
            // Array.from 把类数组转成数组 
            let iarray = Array.from(obj);        
            // ["0", "1", "2", "3"]
            console.log(iarray);

        
        method1();

6.2、展开运算符,类数组(HTMLCollection集合)转成数组的第二种方法

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <ol>
        <li>zhh1</li>
        <li>zhh2</li>
        <li>zhh3</li>
        <li>zhh4</li>
        <li>zhh5</li>
    </ol>
    <script>

        // lis是一个类数组    
        let lis = document.getElementsByTagName('li');
        // 把类数组转成数组,方法1
        let liArray = Array.from(lis);
        // 把类数组转成数组,方法2
        let liArrays = [...lis];
        console.log(lis);
        console.log(Array.isArray(lis));
        console.log(Array.isArray(liArray));
        console.log(Array.isArray(liArrays));
    </script>
</body>

</html>

7、Array.isArray() 判断是否是数组

        // Array.isArray() 判断是否是数组
        function method2() 
            // 和对象的写法很像
            // 类数组满足条件:有下标,有length 
            let obj = 
                0: '0',
                1: '1',
                2: '2',
                3: '3',
                length: 4
            

            // 判断是否是数组 false
            console.log(Array.isArray(obj));
        
        method2();

8、array.flat() 把多维数组转成一维数组

        // array.flat() 把多维数组转成一维数组
        function method4() 
            let iarray = ['a', ['b', ['c', ['d', ['e', 'f', ['g', 'h']]]]]];
            let iiarray = iarray.flat(Infinity);
            //  ["a", "b", "c", "d", "e", "f", "g", "h"]
            console.log(iiarray);
        
        method4();

9、forEach 遍历数组

        fruits.forEach(function (item, index, array) 
            console.log(item, index, array);

        );

10、find() 查找 符合条件的第一个元素

        // find() 查找符合条件的第一个元素
        // 返回数组中满足提供的测试函数的第一个元素的值,返回一个元素,否则返回 undefined。
        var found = fruits.find(function (element) 
            return element == '1';
        );

        console.log(found);
        // 1

11、filter() 过滤出新数组

        //filter() 过滤出符合条件的元素,组成一个新数组,并返回
        var fru = fruits.filter(function(element)
            return element.length>2;
        );
        console.log(fru);
        // ["Apple", "Banana"]

12、map() 修改成一个新数组

        // map() 方法根据条件创建一个新数组,并返回
        var mapfur = fruits.map(function(element)
            return 'zhh'+element;
        );
        console.log(mapfur);
        // ["zhhApple", "zhhBanana", "zhh梨子", "zhh橘子", "zhh桃子", "zhh1", "zhh2"]

13、扩展运算符数组的合并

        // 数组的合并
        var iii =[1,2,3];
        var jjj =[4,5,6];
        var lll =[...iii,...jjj];
        console.log(lll);

二、Set集合

Set 存储的元素不能重复

查找的时候在百度中搜索 mdn set

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Set

1、创建对象

        let set = new Set();

2、添加元素

        set.add("wo").add("wo").add("zhh");
        // 不能出现重复元素,所以里面只有 "wo", "zhh"
        console.log(set);

3、删除元素

        // 删除元素
        set.delete("wo");
        // "zhh"
        console.log(set);

4、包含某个元素,返回true或false

        let ooo = set.has('zhh');
        console.log(ooo);

5、添加数组

        let set2 = new Set([1, 2, 3, 4, 5, 5]);
        // 1, 2, 3, 4, 5
        console.log(set2);

6、集合长度

        // 集合长度
        let changdu = set2.size;
        console.log(changdu);

7、循环遍历

        // 循环遍历
        for (let item of set2.values()) 
            console.log(item);
        

8、转成数组

        // 转成数组
        var myArr = Array.from(set2);
        console.log(myArr);

9、字符串转成set

        var text = 'Indiana';
        var mySet = new Set(text);
        // Set "I", "n", "d", "i", "a"
        console.log(mySet);

10、扩展运算符把set合并成数组

        let xSet = new Set();
        xSet.add('1').add('2').add('3');
        let ySet = new Set();
        ySet.add('4').add('5').add('6');
        let zSet = [...xSet, ...ySet];
        console.log(zSet);

三、Map集合

Map 对象保存键值对

1、创建对象

        let map = new Map();

2、添加数据

        // 存数据
        map.set(0, 'zhh0');
        map.set(1, 'zhh1');
        map.set(2, 'zhh2');
        map.set(3, 'zhh3');

3、取数据

        console.log(map.get(0));
        console.log(map.get(1));
        console.log(map.get(2));

4、删除数据

        map.delete(0);
        console.log(map);

5、清空数据

        map.clear();
        console.log(map);

6、foreach遍历

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

            
        );

7、转成数组,转成了二维数组

        let iarray = Array.from(map);
        console.log(iarray);

8、使用扩展运算符把map对象转成二维数组

        let iarray2 = [...map];
        console.log(iarray2);

9、扩展运算符,合并 Map 对象

 // 使用扩展运算符,合并对象
        // 合并两个Map对象时,如果有重复的键值,则后面的会覆盖前面的。
        // 展开运算符本质上是将Map对象转换成数组。
        var first = new Map([
            [1, 'one'],
            [2, 'two'],
            [3, 'three'],
        ]);

        var second = new Map([
            [3, 'uno'],
            [4, 'dos']
        ]);

        // 本质上是转成数组,合并数组之后,在转成map
        var third = new Map([...first, ...second]);
        console.log(third);

 

 

 

 

 

以上是关于web前端练习17----es6新语法4,数组,Set集合,Map集合的主要内容,如果未能解决你的问题,请参考以下文章

web前端练习19----es6新语法6,异步任务 Promise

web前端练习20----es6新语法7,生成器对象 Generator

web前端练习24----es5,es6重要语法总结

web前端练习21----使用babel,让es6兼容所有的浏览器

leepcode语法练习

python 练习 4