Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

156
Vistas
No se pueden obtener valores de la declaración de cambio para insertar en una matriz

Pasé horas tratando de resolver este ejercicio y me quedé estancado en este punto. No puedo obtener valores de mi declaración de cambio para enviar a una matriz para las variables "displayVal" y "val".

 const getDeck = () => { const suits = ['Spades','Hearts','Diamonds','Clubs']; let cards = []; for(let s=0; s < suits.length; s++){ for(let d = 0; d < 13; d++){ let displayVal; let val; switch (d) { case (d === 1): displayVal = "Ace"; val = 11; break; case (d >=2 && d <= 10): displayVal = d; val = d; break; case (d === 11): displayVal = "Jack" val = 10; break; case (d === 12): displayVal = "Queen" val = 10; break; case (d === 13): displayVal = "King" val = 10; } cards.push({ val, displayVal, suit: suits[s] } ); } } return cards; } const deck = getDeck(); console.log(`Deck length equals 52? ${deck.length === 52}`);
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Uso de la rama if-else

En realidad, está utilizando condiciones, así que continúe con if-else ramificado

 const getDeck = () => { const suits = ["Spades", "Hearts", "Diamonds", "Clubs"]; let cards = []; for (let s = 0; s < suits.length; s++) { for (let d = 0; d < 13; d++) { let displayVal; let val; if (d === 1) { displayVal = "Ace"; val = 11; } else if (d >= 2 && d <= 10) { displayVal = d; val = d; } else if (d === 11) { displayVal = "Jack"; val = 10; } else if (d === 12) { displayVal = "Queen"; val = 10; } else if (d === 13) { displayVal = "King"; val = 10; } else { displayVal = ""; val = 0; } cards.push({ val, displayVal, suit: suits[s], }); } } return cards; }; const deck = getDeck(); console.log(deck); console.log(`Deck length equals 52? ${deck.length === 52}`);

Uso de la caja del interruptor

 const getDeck = () => { const suits = ['Spades','Hearts','Diamonds','Clubs']; let cards = []; for(let s=0; s < suits.length; s++){ for(let d = 0; d < 13; d++){ let displayVal; let val; switch (true) { case (d === 1): displayVal = "Ace"; val = 11; break; case (d >=2 && d <= 10): displayVal = d; val = d; break; case (d === 11): displayVal = "Jack" val = 10; break; case (d === 12): displayVal = "Queen" val = 10; break; case (d === 13): displayVal = "King" val = 10; default: displayVal ="" val =0 } cards.push({ val, displayVal, suit: suits[s] } ); } } return cards; } const deck = getDeck(); console.log(deck); console.log(`Deck length equals 52? ${deck.length === 52}`);
about 4 years ago · Juan Pablo Isaza Denunciar

0

Hay una forma / enfoque alternativo que se puede usar aquí.

Fragmento de código

 const getDeck = () => { const suits = ['Spades','Hearts','Diamonds','Clubs']; const getValueOf = x => x === 1 ? 11 : x > 10 ? 10 : x; const displayValMap = {1: 'Ace', 11: 'Jack', 12: 'Queen', 13: 'King'}; return suits.map( suit => ( [ ...Array(13) .keys() ] .map(x => x + 1) .map(d => ({ val: getValueOf(d), displayVal: d in displayValMap ? displayValMap[d] : d, suit })) ) ).flat(); } const deck = getDeck(); console.log(`Deck length equals 52? ${deck.length === 52}`); console.log(deck);

Explicación

  • Configurar formas de obtener val y displayVal (en el fragmento anterior, se usa getValueOf - un método de una línea; y displayValMap un objeto)
  • Iterar a través de los suits
  • Use ... spread-operator para generar una matriz de longitud 13, luego obtenga las claves de la matriz.
  • Use .map para hacer que la matriz generada comience desde 1, en lugar de 0
  • Para cada elemento de la matriz, cree un objeto con val , displayVal y accesorios de suit
  • Y, finalmente, use .flat() para devolver todos los objetos a una sola matriz en lugar de matrices anidadas.

Otra forma puede ser:

 const getDeck = () => ['Spades','Hearts','Diamonds','Clubs'].map( suit => ( [ ...Array(13) .keys() ] .map(d => ({ val: (d === 0 ? 10 : d > 9 ? 9 : d) + 1, displayVal: {0: 'Ace', 10: 'Jack', 11: 'Queen', 12: 'King'}[d] || d + 1, suit })) ) ).flat(); console.log(getDeck().length); console.log(getDeck());

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda