Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

168
Visualizações
Declaración de variables dinámicas. ¿Es este el método correcto?

Un poco nuevo en JS, así que sé amable :)

Estoy tratando de crear un programa que contenga más de 5000 valores booleanos que cambien dinámicamente en función de otras variables.

 const chars = "abcdefghijklmnopqrstuvwxyz0"; const charsC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0" const maxNum = 48; const maxTile = 6; var tile1, tile2, tile3, tile4, tile5, tile6 // test vars var tile4 = "A27" var t4a27 = false // this snippet will be in an interval loop for (let i = 1; i <= maxTile; ++i) { for (let n = 0; n < chars.length; ++n) { for (let j = 1; j <= maxNum; ++j) { // this obviously doesnt work var t[i][`${chars[n]}`][j]; // ^ ^ ^ if (tile[i] == `${charsC[n]}${j}`) { t[i][h][j] = true; console.log(t4a27) } else { t[i][h][j] = false; } } } }

Para aclarar, una palabra mejor que "tile" para las vars podría ser "sprite" porque es un punto en el sprite.

El concepto básico es que las variables de mosaico están diseñadas para generar su posición actual como un valor de cadena, por ejemplo, "A27". Luego, este ciclo tomará esa información y escaneará cada subconjunto de mosaicos para que sea verdadero/falso. Entonces, si el cuadrante inferior derecho del sprite está dentro de "A27", la salida sería t4a27 = verdadero

En la práctica, puedo hacer esto con solo una gran cantidad de código (más de 20,000 líneas), pero pensé que tenía que ser una forma más fácil que requiera mucho menos código.

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Este probablemente no sea el enfoque correcto para su problema.

Si realmente necesita almacenar esta cantidad de variables, probablemente sea mejor colocarlas en un objeto como este:

 var tiles = {} var tileName = 'abc' // Dynamic setting: tile[tileName] = true // Dynamic reading: console.log(tile[tileName])

Me pregunto si realmente desea almacenar 5000 variables o si hay otra forma de calcularlas en el momento en que necesita tiempo, pero eso requiere un poco más de conocimiento del problema.

about 4 years ago · Juan Pablo Isaza Relatório

0

Javascript no tiene este tipo de capacidad para reflejar variables locales.
Lo que puede hacer es adjuntar todas esas variables a un objeto global y continuar con: Object.keys(your_object) and your_object[key_name_here] = ...

about 4 years ago · Juan Pablo Isaza Relatório

0

Creo que deberías usar una matriz de 2 dim para esto. O use una matriz regular de booleanos con el tamaño apropiado y haga la magia del índice usted mismo.

Como dijiste, estás corriendo en coordenadas. A-27 es lo mismo que fila (1) + campo (27), considerando que A es 1

Si su campo es de 500x100, crea un Array como tal: let gamefield = Array(500*100);

Advertencia: no he probado esto para detectar errores de sintaxis, pero debería hacerse una idea.

 let gamefield = Array(500*100); // optional gamefield.fill(true); let row = idx => idx * 500; let posIdx = (r, c) => row(r) + c; // there is a sprite with a tiles property that returns // 4 index positions for the sprite's quadrants as [r,c] let quadrants = sprite.tiles.reportPositions() // filter the quadrants where the gamefield at r,c is true // this might also be a good case for some() instead of filter() let collisions = quadrants.filter(pos => return gamefield[posIdx(...pos)]); // if there is any of these, you can kill the sprite. if(collisions.length > 0) sprite.kill();
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda