个人对…常用方法的理解
…作为扩展运算符
这里指的扩展是针对数组或字符串或伪数组(就是类似于数组这样的可以用下标将每一项取出来,并且有总体长度属性的数据,以下简称为可遍历对象)的扩展,代表的含义是将数组中的每一项取出来,并用,进行分隔(当使用的时候是这样,如果单独打印的话是用空格分隔)。
<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.]
立即学习“Java免费学习笔记(深入)”;
由于它是对一个可遍历的对象使用循环过来的,所以它不会改变原数组,会进行一个浅克隆的操作,因此可以用于数组的浅拷贝。 => […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中...扩展运算符的常用方法的详细内容,更多请关注php中文网其它相关文章!
 
                        
                        java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
 
                 
                                
                                 收藏
收藏
                                                                             
                                
                                 收藏
收藏
                                                                             
                                
                                 收藏
收藏
                                                                            Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号