Rutas
/
JavaScript
JavaScript
/
Ejercicios
/
Los encantamientos de Elyse
Los encantamientos de Elyse

Los encantamientos de Elyse

Ejercicio de aprendizaje

Introducción

En JavaScript, un array es una estructura similar a una lista, sin longitud fija, que puede contener cualquier tipo de primitivos u objetos, incluso tipos mezclados.

Para crear un array, añade elementos entre corchetes ([]). Para leer del array, escribe el índice entre corchetes ([]) después del identificador. Los índices de un array empiezan en cero.

Por ejemplo:

const numbers = [1, 'two', 3, 'four'];
numbers[2];
// => 3

Para obtener el número de elementos que hay en un array, usa la propiedad length:

const numbers = [1, 'two', 3, 'four'];
numbers.length;
// => 4

Para cambiar un elemento del array, asigna un valor en el índice:

const numbers = [1, 'two', 3, 'four'];
numbers[0] = 'one';
numbers;
// => ['one', 'two', 3, 'four']

Métodos

Algunos de los métodos disponibles en todos los objetos Array se pueden usar para añadir o quitar elementos de un array. Aquí tienes algunos que puedes tener en cuenta al resolver este ejercicio:

push

Se puede añadir un value al final de un array usando .push(value). El método devuelve la nueva longitud del array.

const numbers = [1, 'two', 3, 'four'];
numbers.push(5); // => 5
numbers;
// => [1, 'two', 3, 'four', 5]

pop

Se puede quitar el último value de un array usando .pop(). El método devuelve el valor quitado. La longitud del array se reducirá con este cambio.

const numbers = [1, 'two', 3, 'four'];
numbers.pop(); // => four
numbers;
// => [1, 'two', 3]

shift

Se puede quitar el primer value de un array usando .shift(). El método devuelve el valor quitado. La longitud del array se reducirá con este cambio.

const numbers = [1, 'two', 3, 'four'];
numbers.shift(); // => 1
numbers;
// => ['two', 3, 'four']

unshift

Se puede añadir un value al principio de un array usando .unshift(value). El método devuelve la nueva longitud del array.

const numbers = [1, 'two', 3, 'four'];
numbers.unshift('one'); // => 5
numbers;
// => ['one', 1, 'two', 3, 'four']

splice

Se puede quitar un value en un index concreto de un array usando .splice(index, 1). El método devuelve el elemento o los elementos quitados.

const numbers = [1, 'two', 3, 'four'];
numbers.splice(2, 1, 'one'); // => [3]
numbers;
// => [1, 'two', 'one', 'four']
Advanced

Estos métodos son más potentes de lo que se describe aquí:

  • Tanto push como unshift te permiten añadir varios valores a la vez, pasando más argumentos. Eso no es necesario para completar este ejercicio.
  • Splice puede quitar varios valores aumentando el segundo argumento. Eso no es necesario para completar este ejercicio.
  • Splice también puede añadir varios valores pasándolos como argumentos después del deleteCount. Esto se puede usar para reemplazar valores o insertar valores en medio de un array (por ejemplo, quitando 0 elementos). Eso no es necesario para completar este ejercicio.

Instrucciones

Como futura maga, Elyse necesita practicar algunos conceptos básicos. Tiene un montón de cartas que quiere manipular.

Para que todo sea un poco más fácil, solo usa las cartas del 1 al 10, así que su montón de cartas puede representarse con un array de números. La posición de una carta concreta corresponde al índice dentro del array. Es decir, la posición 0 se refiere a la primera carta, la posición 1 a la segunda y así sucesivamente.

Note

Todas las funciones menos dos deberían actualizar el array de cartas y luego devolver el array modificado, una forma de trabajar muy común conocida como el patrón Builder, que te permite encadenar funciones de forma muy elegante.

Las dos excepciones son getItem, que debería devolver la carta en la posición dada, y checkSizeOfStack, que debería devolver true si el tamaño dado coincide.

1. Recupera una carta del montón

Para coger una carta, devuelve la carta que está en el índice position del montón dado.

const position = 2;
getItem([1, 2, 4, 1], position);
// => 4

2. Intercambia una carta del montón

Haz un poco de prestidigitación e intercambia la carta que está en el índice position por la carta de reemplazo proporcionada. Devuelve el montón ajustado.

const position = 2;
const replacementCard = 6;
setItem([1, 2, 4, 1], position, replacementCard);
// => [1, 2, 6, 1]

3. Inserta una carta en la parte superior del montón

Haz aparecer una carta insertando una carta nueva en la parte superior del montón. Devuelve el montón ajustado.

const newCard = 8;
insertItemAtTop([5, 9, 7, 1], newCard);
// => [5, 9, 7, 1, 8]

4. Elimina una carta del montón

Haz desaparecer una carta eliminando del montón la carta que está en la position dada. Devuelve el montón ajustado.

const position = 2;
removeItem([3, 2, 6, 4, 8], position);
// => [3, 2, 4, 8]

5. Elimina la carta superior del montón

Haz desaparecer una carta eliminando la carta que está en la parte superior del montón. Devuelve el montón ajustado.

removeItemFromTop([3, 2, 6, 4, 8]);
// => [3, 2, 6, 4]

6. Inserta una carta en la parte inferior del montón

Haz aparecer una carta insertando una carta nueva en la parte inferior del montón. Devuelve el montón ajustado.

const newCard = 8;
insertItemAtBottom([5, 9, 7, 1], newCard);
// => [8, 5, 9, 7, 1]

7. Elimina una carta de la parte inferior del montón

Haz desaparecer una carta eliminando la carta que está en la parte inferior del montón. Devuelve el montón ajustado.

removeItemAtBottom([8, 5, 9, 7, 1]);
// => [5, 9, 7, 1]

8. Comprueba el tamaño del montón

Comprueba si el tamaño del montón es igual a stackSize o no.

const stackSize = 4;
checkSizeOfStack([3, 2, 6, 4, 8], stackSize);
// => false
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
JavaScript Exercism

¿Listo para empezar Los encantamientos de Elyse?

Regístrate en Exercism para aprender y dominar JavaScript con 37 conceptos159 ejercicios y mentoría humana real, todo gratis.