32-数组解构赋值

  • 什么是数组的解构赋值?

    • 解构赋值是ES6中新增的一种赋值方式, 解构赋值就是将数组中的值取出来赋值给变量

          let arr = [1, 3, 5];
          // let a = arr[0];
          // let b = arr[1];
          // let c = arr[2];
      
          let [a, b, c] = arr;
          console.log("a = " + a);
          console.log("b = " + b);
          console.log("c = " + c);
      
  • 数组解构赋值的注意点

    • 注意点1: 在数组解构赋值中, 等号左边的格式必须和等号右边的格式一模一样, 才能完全解构

          // let [a, b, c] = [1, 3, 5];          // 完全解构
          // let [a, b, c] = [1, 3, [2, 4]];    //  c = 2 , 4
          let [a, b, [c, d]] = [1, 3, [2, 4]];  //  完全解构
          console.log("a = " + a);
          console.log("b = " + b);
          console.log("c = " + c);
          console.log("d = " + d);
      
    • 注意点2: 在数组解构赋值中, 左边的个数小于右边的个数时, 会给变量正常赋值, 但数组解构不完全

          let [a, b] = [1, 3, 5];
          console.log("a = " + a);  // a = 1
          console.log("b = " + b);  // b = 3
      
    • 注意点3: 在数组解构赋值中, 左边的个数大于右边的个数时, 未赋值的变量中存储的是undefined

          let [a, b, c] = [1];
          console.log("a = " + a);  // a = 1
          console.log("b = " + b);  // b = undefined
          console.log("c = " + c);  // c = undefined
      
    • 注意点4: 在数组的解构赋值中, 如果左边的个数大于右边的个数, 那么我们可以给左边指定默认值

          let [a, b = 666, c = 888] = [1];
          console.log("a = " + a);  // a = 1
          console.log("b = " + b);  // b = 666
          console.log("c = " + c);  // c = 888
      
    • 注意点5: 在数组的解构赋值中, 如果左边的个数小于或等于右边的个数, 那么我们给左边指定的默认值会被覆盖

          let [a, b = 666, c = 888] = [1, 3, 5];
          console.log("a = " + a);  // a = 1
          console.log("b = " + b);  // b = 3
          console.log("c = " + c);  // c = 5
      
    • 注意点6: 在数组的解构赋值中, 还可以使用ES6中新增的扩展运算符把剩余的数据打包成数组

      • 如果使用了扩展运算符, 那么扩展运算符只能写在最后

          ES6中新增的扩展运算符: ...
        
          let [a, ...b] = [1, 3, 5];
          let [...a,b] = [1, 3, 5];   // 报错
          console.log("a = " + a);  // a = 1
          console.log(b);  // [3, 5]
        
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、新的声明方式 以前我们在声明时只有一种方法,就是使用var来进行声明,ES6对声明的进行了扩展,现在可以有三种...
    令武阅读 1,054评论 0 7
  • 基本用法 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring...
    嘉奇呦_nice阅读 792评论 0 2
  • 1.数组的解构赋值 2.对象的解构赋值 3.字符串的解构赋值 4.数值和布尔值的解构赋值 5.函数参数的解构赋值 ...
    卞卞村长L阅读 926评论 0 0
  • 转载:在开发中,数组的使用场景非常多,平日中也涉及到很多数组的api/相关操作,一直也没有对这块内容进行一块整理总...
    七色烟火阅读 3,294评论 0 3
  • 速成,如指的是快速成功,当然不可能。因为绝大多数成绩都需要时间的孕育。但快速入门,是绝对有可能,而且还绝对必要。 ...
    遇见未来的我阅读 230评论 0 0