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

278
Vistas
La matriz en JavaScript no está definida

Soy muy nuevo en JavaScript pero tengo buena experiencia con C y Java. Por alguna razón, mi código a continuación no completará la matriz con valores que no sean indefinidos. Estoy tratando simplemente de llenar una matriz con un conjunto aleatorio de números para un juego de blackjack

 let randomSuite; let randomNum let count = 0; var cards = new Array(56); window.onload = function main(){ const suites = [ "H", "D", "S", "C" ]; for(let i = 0 ; i < 56 ; i++){ randomNum = (Math.random * 12) + 1; randomSuite = Math.random * 3; cards.push = randomNum; console.log(cards[i]); count++; } alert(cards[1]); } function hitFunc(){ alert("works " + cards[0]); }
 *{ margin: 0; padding : 0; font-family: sans-serif; } .main{ width: 100%; height: 100vh; background-color:black; } .img1{ position: relative; z-index: -1; margin: 10px auto 20px; display: block; width: 75%; height: 75%; } .img2{ position: relative; z-index: 1; margin: 10px auto 20px; display: block; bottom: 200px; right: 400px; width: 7%; height: 7%; } .hitButton { z-index: 1; position: relative; text-align: center; left: 225px; bottom: 550px; } .center { display: block; margin-left: auto; margin-right: auto; width: 50%; color: aliceblue; object-position: center; }

Esto es lo que tengo. Las alertas se utilizan para mostrar que la función se está completando. Cualquier ayuda es apreciada Por favor, deje una explicación también. Esta es mi primera publicación sobre el desbordamiento de pila. Avíseme si hay alguna manera de mejorar la calidad de mi publicación.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

  1. Math.random es una función; usar Math.random()
  2. Lo mismo para push , use cards.push(randomNum)
  3. Estaba definiendo una matriz con 56 puntos new array(56) pero como está usando push , necesitará crear una matriz vacía para que esté presionando al índice deseado. De lo contrario, en lugar de push , simplemente configúralo en el índice: cards[i] = randomNum
  4. No se necesita la variable de count ya que el iterador de bucle ( i ) tiene el mismo valor

 let randomSuite; let randomNum var cards = new Array(); window.onload = function main(){ const suites = [ "H", "D", "S", "C" ]; for(let i = 0 ; i < 56 ; i++){ randomNum = (Math.random() * 12) + 1; randomSuite = Math.random() * 3; cards.push(randomNum); } console.log(cards) }
 *{ margin: 0; padding : 0; font-family: sans-serif; } .main{ width: 100%; height: 100vh; background-color:black; } .img1{ position: relative; z-index: -1; margin: 10px auto 20px; display: block; width: 75%; height: 75%; } .img2{ position: relative; z-index: 1; margin: 10px auto 20px; display: block; bottom: 200px; right: 400px; width: 7%; height: 7%; } .hitButton { z-index: 1; position: relative; text-align: center; left: 225px; bottom: 550px; } .center { display: block; margin-left: auto; margin-right: auto; width: 50%; color: aliceblue; object-position: center; }

about 4 years ago · Juan Pablo Isaza Denunciar

0

Llamar funciones con paréntesis

Math.random() y push() son funciones, no variables, por lo tanto, debe llamarlas usando () .

push() se agregará a la matriz

push() agregará un valor a la matriz. Ya inicializaste una matriz con 10 valores. Presionar nuevos valores aumentará el tamaño de la matriz pero no agregará valores en los primeros 10 lugares.

 const array = new Array(10); for(let i = 0; i < 10; i++){ array.push(i); } console.log(array);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

Solución

En su lugar, debe usar array[i] = value; para establecer un valor en una posición determinada.

 const array = new Array(10); for(let i = 0; i < 10; i++){ array[i] = i; } console.log(array);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

Si desea tener una forma más funcional de hacer esto, como es típico en JavaScript, puede usar map() :

 const array = [...new Array(10)].map((_, index) => index); console.log(array);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

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