您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

介绍JavaScript中...扩展运算符的常用方法

2024/3/21 23:04:03发布24次查看
个人对…常用方法的理解
…作为扩展运算符
这里指的扩展是针对数组或字符串或伪数组(就是类似于数组这样的可以用下标将每一项取出来,并且有总体长度属性的数据,以下简称为可遍历对象)的扩展,代表的含义是将数组中的每一项取出来,并用,进行分隔(当使用的时候是这样,如果单独打印的话是用空格分隔)。
…可以将一个一维数组进行展开,即只能去掉最外面一层的[];他的结果就是数组被去掉[]的结果,不是字符串也不是数组也不是别的东西,所以按照它逗号分隔的方式,可以将它作为函数的形参传递也可以外面再套一个[],当做数组作为一个函数的return,但是不能直接return,可以用console输出。<script>        let arr = [            5,            str,            [1,2,3],            [hello,world],        ];        function fn(arr){            console.log(...arr);               return [...arr]                }        function fo(...arr){            console.log(arr);        }        // function foo(arr){        //     return ...arr;  //    expression expected.        // }        console.log(fn(arr));     //  5 str (3) [1, 2, 3] (2) [hello, world]                                  //  (4) [5, str, array(3), array(2)] //   外面的[]去掉了,但是里面的[1,2,3]、[hello,world]的[]没有去掉    </script>
…作为剩余运算符剩余运算符的意思就是我不知道这个参数总共有多少个,我用…表示剩余的,同样它只适用于数组。而且这两种方法得到的结果都是一个数组,而不是数组去掉[]。主要有以下两种方法:第一种: 所有的参数都是未知的,不知道传几个。第二种: 有一个或多个已知参数,其余参数未知。//  第一种所有参数都未知function aa(...arr){    console.log(arr);}aa(5,sss,22)     //  (3) [5, sss, 22]     =>    结果是一个数组//  第二种,有两个已知参数function ff(a,b,...arr){    console.log(arr)}ff(2,3,str,111)    // (2) [str, 111]   =>    结果是一个数组
特性其他应用:分解字符串可以用str.split()也可以用[…str]
伪数组转换为真数组由于他可以将可遍历对象用数组去掉[]的方法显示出来,而且可以对伪数组使用,所以很好理解对伪数组使用后将伪数组的形式转变后,在加上[]就是真数组了,可以调用真数组的方法。 => […arr.]
浅拷贝由于它是对一个可遍历的对象使用循环过来的,所以它不会改变原数组,会进行一个浅克隆的操作,因此可以用于数组的浅拷贝。 => […arr]
数组扁平化  <script>        // 简单的二维数组(一个数组里面又套了一个数组  =>  二维)        let arr = [            5,            str,            [1,2,3],            [hello,world],        ];        // 三维数组(一个数组里面套一个数组,里面又套一个数组)        let arr1 = [            5,            str,            [                1,2,3,                [ccc,dddd]            ],            [hello,world],        ];        function flatten(arr){            return [].concat(...arr);        }        function flatten1(arr){            return [].concat(...arr.map(x => array.isarray(x) ? flatten1(x) : x));        }        console.log(flatten(arr));    // (7) [5, str, 1, 2, 3, hello, world]        console.log(flatten1(arr));   // (7) [5, str, 1, 2, 3, hello, world]        console.log(flatten(arr1));   // (8) [5, str, 1, 2, 3, array(2), hello, world]        console.log(flatten1(arr1));  // (9) [5, str, 1, 2, 3, ccc, dddd, hello, world]    </script>
由以上可知,当数组结构非常简单(二维)时,扩展运算符可以将里面的数组解出来,并使用concat进行拼接。但是当数组比较多维时,它并不能将更深层的数组解出来,需要使用扩展运算符配合递归才可以实现。
推荐学习:《javascript基础教程》
以上就是介绍javascript中...扩展运算符的常用方法的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product