JavaScript 元组示例

Muhammad Muzammil Hussain 2023年1月30日 2022年5月10日
  1. JavaScript 中的元组
  2. JavaScript 元组示例 2
JavaScript 元组示例

在 JavaScript 语言中,元组是具有不可变特性的数组类型。我们可以使用一个变量访问元组,该变量是一个数组类型。

JavaScript 中的元组

class MyBestTupleExplanation extends Array {
  constructor(...items) {
    super(...items); 
    Object.freeze(this);
  } 
}

let tuple = new MyBestTupleExplanation("Afridi", 35,"White");
let [myName, myAge,skinColor] = tuple;
console.debug(myName); // Afridi
console.debug(myAge); // 35
console.debug(skinColor); // White
console.debug("******************************************");
console.debug("Now we are re-assigning the values to tuple");
console.debug("******************************************");
tuple = ["Bob", 24]; // no effect 
console.debug(myName); // Afridi
console.debug(myAge); // 35
console.debug(skinColor); //White

输出:

Afridi
35
White
******************************************
Now we are re-assigning the values to tuple
******************************************
Afridi
35
White

在上面的例子中,我们创建了一个名为 MyBestTupleExplanation 的类,继承自 Array 类。它将表现得像一个数组,但具有不变性特征。在这个类中,我们用 super 方法调用 Array 类的构造函数。

在上面的代码中,我们使用了 MyBestTupleExplanation 类,在它的构造函数中,我们从父类 Object 调用方法 freeze 并将一个数组传递给它。

在创建这个类之后,我们创建了该类的名为 MyBestTupleExplanation 的对象,并通过构造函数传递值。

我们创建了一个匿名变量数组并将我们的元组分配给该数组。元组中的元素将按索引分配给 array。如果我们稍后将值重新分配给该元组,它将不起作用。如示例所示,我们不能将值重新分配给元组。

JavaScript 元组示例 2

class MyBestTupleExplanation extends Array {
  constructor(...items) {
    super(...items); 
    Object.freeze(this);
  } 
}

let tuple = new MyBestTupleExplanation("Afridi", 35);
let [myName, myAge,skinColor] = tuple;
console.debug(myName); // Afridi
console.debug(myAge); // 35
console.debug(skinColor); // undefined

输出:

Afridi
35
undefined

在上面的例子中,我们创建了一个变量 skinColor,但没有初始化它的值;这就是为什么我们得到一个未定义的错误。