发布于 2026-01-05 2 阅读
0

ES6 中的解构赋值 - 数组

ES6 中的解构赋值 - 数组

解构赋值是 ES6 引入的一项很棒的特性。解构赋值是一种 JavaScript 表达式,它允许我们将数组中的值或对象的属性解包到不同的变量中。也就是说,我们可以从数组和对象中提取数据并将其赋值给变量。为什么需要这样做呢?

想象一下,如果我们想从一个数组中提取数据。以前,这是如何实现的呢?


    var introduction = ["Hello", "I" , "am", "Sarah"];
    var greeting = introduction[0];
    var name = introduction[3];

    console.log(greeting);//"Hello"
    console.log(name);//"Sarah"
Enter fullscreen mode Exit fullscreen mode

我们可以看到,以前从数组中提取数据时,需要重复执行相同的操作。ES6 的解构赋值机制让数据提取变得更加容易。这是为什么呢?本文将讨论数组的解构赋值。我的下一篇文章将讨论对象的解构赋值。让我们开始吧。

基本解构

如果我们想使用数组提取数据,使用解构赋值非常简单。让我们回顾一下第一个数组示例。为了避免重复操作,我们将采用以下方法。


    var introduction = ["Hello", "I" , "am", "Sarah"];
    var [greeting, pronoun] = introduction;

    console.log(greeting);//"Hello"
    console.log(pronoun);//"I"

Enter fullscreen mode Exit fullscreen mode

我们也可以用同样的方法得到相同的结果。

    var [greeting, pronoun] = ["Hello", "I" , "am", "Sarah"];

    console.log(greeting);//"Hello"
    console.log(pronoun);//"I"

Enter fullscreen mode Exit fullscreen mode

先声明变量再赋值
变量可以在赋值之前像这样声明。


    var greeting, pronoun;
    [greeting, pronoun] = ["Hello", "I" , "am", "Sarah"];

    console.log(greeting);//"Hello"
    console.log(pronoun);//"I"

Enter fullscreen mode Exit fullscreen mode

请注意,变量是从左到右设置的。因此,第一个变量获取数组中的第一个元素,第二个变量获取数组中的第二个元素,依此类推。

跳过数组中的元素

如果我们想获取数组中的第一个和最后一个元素,而不是第一个和第二个元素,并且只想赋值两个变量,该怎么办?这也可以做到。请看下面的例子。

    var [greeting,,,name] = ["Hello", "I" , "am", "Sarah"];

    console.log(greeting);//"Hello"
    console.log(name);//"Sarah"

Enter fullscreen mode Exit fullscreen mode

刚才发生了什么?看看变量赋值语句左侧的数组。注意,这里不是只有一个逗号,而是有三个。逗号分隔符用于在数组中跳过元素。所以,如果你想跳过数组中的某个元素,只需使用逗号即可。

我们再来一次。我觉得挺有意思的。我们跳过清单上的第一项和第三项。我们该怎么做呢?

    var [,pronoun,,name] = ["Hello", "I" , "am", "Sarah"];

    console.log(pronoun);//"I"
    console.log(name);//"Sarah"

Enter fullscreen mode Exit fullscreen mode

所以逗号分隔符起着关键作用。如果我们想跳过所有项目,只需这样做即可。

    var [,,,,] = ["Hello", "I" , "am", "Sarah"];

Enter fullscreen mode Exit fullscreen mode

分配数组的剩余部分

如果我们想将数组中的一些元素赋值给变量,并将数组中的其余元素赋值给一个特定的变量,该怎么办?我们会这样做。

    var [greeting,...intro] = ["Hello", "I" , "am", "Sarah"];

    console.log(greeting);//"Hello"
    console.log(intro);//["I", "am", "Sarah"]

Enter fullscreen mode Exit fullscreen mode

使用这种模式,您可以将数组的剩余部分解包并赋值给一个变量。

函数解构赋值
我们还可以从函数返回的数组中提取数据。假设我们有一个函数,它返回一个像下面这样的数组。

    function getArray() {
        return ["Hello", "I" , "am", "Sarah"];
    } 
    var[greeting,pronoun] = getArray();

    console.log(greeting);//"Hello"
    console.log(pronoun);//"I"
Enter fullscreen mode Exit fullscreen mode

我们得到了相同的结果。

使用默认值
可以为变量分配默认值,以防从数组中提取的值为空undefined


    var[greeting = "hi",name = "Sarah"] = ["hello"];

    console.log(greeting);//"Hello"
    console.log(name);//"Sarah"
Enter fullscreen mode Exit fullscreen mode

name因此,由于数组中未定义“Sarah”,所以回退到“Sarah”。

使用解构赋值交换值
还有一点需要注意。我们可以使用解构赋值来交换变量的值。

    var a = 3;
    var b = 6;

    [a,b] = [b,a];

    console.log(a);//6
    console.log(b);//3
Enter fullscreen mode Exit fullscreen mode

接下来,我将撰写关于对象解构的文章。

有任何问题或补充吗?请留言。

感谢阅读 :)

文章来源:https://dev.to/sarah_chima/destructuring-assignment---arrays-16f