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.