Ejemplo de tupla en JavaScript
En lenguaje JavaScript, las tuplas son tipos de array con características inmutables. Podemos acceder a la tupla con una sola variable que es un tipo de array
.
Tupla en 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
Producción :
Afridi
35
White
******************************************
Now we are re-assigning the values to tuple
******************************************
Afridi
35
White
En el ejemplo anterior, creamos una clase llamada MyBestTupleExplanation
, heredada de la clase Array
. Se comportará como un array pero con características de inmutabilidad. En esta clase llamamos al constructor de la clase Array
con el método super
.
En el código anterior, usamos la clase MyBestTupleExplanation
, y en su constructor, llamamos al método freeze
de la clase principal Object
y le pasamos un array.
Después de crear esta clase, creamos el objeto de esa clase llamado MyBestTupleExplanation
y pasamos los valores a través del constructor.
Hemos creado un array anónima de variables y hemos asignado nuestra tupla a ese array. Los elementos de la tupla se asignarán por índices al array
. No funcionará si reasignamos los valores a esa tupla más tarde. Como se muestra en el ejemplo, no podemos reasignar los valores a la tupla.
Tupla JavaScript Ejemplo 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
Producción :
Afridi
35
undefined
En el ejemplo anterior, hemos creado una variable skinColor
pero sin inicializar su valor; es por eso que estamos recibiendo un error indefinido.