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

107
Vistas
NOTACIÓN DEL SOPORTE DE ACCESO AL OBJETO

¡Compañeros programadores! súper novato aquí. me cuesta comprender

 card['card ' + i] + i

en el siguiente problema. ¿Alguien puede ayudarme por qué hay un +i en la declaración else, por favor?

Su cliente actual es un casino que necesita que usted arregle su programa de conteo de cartas Black-Jack. La función debe tomar una matriz de objetos, cada objeto es una carta que se repartió y su valor es el número de la carta.

La forma en que funciona el conteo de cartas es que cada carta tiene un valor ponderado . Las cartas 2 a 6 valen un punto; 7, 8 y 9 valen cero; y los 10, las figuras y los ases valen menos uno. Este tipo de sistema de conteo de cartas se llama conteo HiLo . Cuando cuentes una baraja estándar de 52 cartas, notarás que la cuenta subirá y bajará y siempre terminará en cero si contaste correctamente.

Se supone que la función cardCounter toma una matriz de objetos de tarjeta y devuelve el recuento (valor ponderado) de las tarjetas. No parece estar produciendo resultados precisos, ¡vea si puede arreglarlo antes de que los tiburones de cartas ganen a la casa!

 function cardCounter(array) { var count = 0; for (var i = 0; i < array.length; i++) { var card = array[i]; if (card['card ' + i] >= 2 && card['card ' + i] <= 6) { count++; } else if (card['card ' + i] + i >= 10 || card['card ' + i] + i === 'face or ace') { count--; } } return count; } function assertEquals(actual, expected, testDescription) { if (actual !== expected) { console.log('Test failed:', testDescription); return; } console.log('test passed'); return; } var dealtCards = [ { 'card 0': 2 }, { 'card 1': 6 }, { 'card 2': 8 }, { 'card 3': 'face or ace' } ]; var actual = cardCounter(dealtCards); var expected = 1; assertEquals(actual, expected, 'function should return correct HiLo count.'); var dealtCards2 = [ { 'card 0': 'face or ace' }, { 'card 1': 9 }, { 'card 2': 8 }, { 'card 3': 'face or ace' } ]; var actual2 = cardCounter(dealtCards2); var expected2 = -2; assertEquals(actual2, expected2, 'function should return correct HiLo count.');
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

En realidad estás 100% correcto. El + i que encontré al final de card['card ' + i] + i & card['card ' + i] + i es un error. De hecho, la razón por la que se aprueban las pruebas es porque la colección de cartas que se están utilizando tienen un 8 y un 9 y ese + i adicional en realidad hace que se encuentre el conteo correcto puramente por coincidencia.

Si agrega un caso de prueba adicional que se ve así:

 var dealtCards3 = [ { 'card 0': 'face or ace' }, { 'card 1': 9 }, { 'card 3': 'face or ace' } ]; var actual3 = cardCounter(dealtCards2); var expected3 = -2; assertEquals(actual3, expected3, 'function should return correct HiLo count.');

Lanza un error.

Los + i son incorrectos y deben eliminarse.

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