Explicación de Dame una mano
Objetivo de este acertijo: Usar .shift()
para eliminar el primer elemento de un arreglo.
Tutorial de la solución: El método de arreglo .shift()
es similar a .pop()
, excepto que elimina y devuelve el primer elemento de un arreglo en lugar del último.
En este acertijo, se importa un mazo de cartas barajado al acertijo como el arreglo deck
. La función drawCard()
toma el parámetro cards
y devuelve cards.shift()
. Cuando se llama a esta función con deck
como un argumento, devolverá el primer elemento de deck
.
Para completar el acertijo, agrega return cards.shift()
dentro del cuerpo de la función drawCard()
.
Solución del código de ejemplo:
import { deck } from 'grasshopper.croupier';
function drawCard(cards) {
return cards.shift();
}
console.log(deck.length);
console.log('Your card is: ' + drawCard(deck));
console.log(deck.length);
Código adicional (código oculto que se ejecuta antes del código del acertijo):
const _deck = (()=> {
const cards = [];
const suits = ['Hearts', 'Spades', 'Clubs', 'Diamonds'];
const values = ['Ace', 2, 3, 4, 5, 6, 7, 8, 9, 10, 'Jack', 'Queen', 'King'];
for (let suit in suits) {
for (let value in values) {
cards.push(`${values[value]} of ${suits[suit]}`);
}
}
return cards;
})();
const shuffle = (array) => {
for (let i = array.length - 1; i > 0; i--) {
let j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
return array;
};
let deck = shuffle(_deck);