Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

168
Views
¿Cómo llenar esta matriz irregular?

Cuando está fuera del alcance de la función, Tiles[[]] pierde todos sus valores.

 var Tiles= [[]]; function drawGrid(){ Grid=true; // for the amout of rows for (let rowcount = 0; rowcount < amountOfrows; rowcount++) { ctxB.lineWidth = 1; // filling the rows // check for (un)even if(rowcount%2==0){ for (let boxcount = 0; boxcount < amountOfHorBoxes; boxcount++) { ctxB.strokeStyle = "black"; ctxB.fillStyle = "white"; ctxB.beginPath(); ctxB.rect(addHorBox, addVertBox, boxsize, boxsize); ctxB.fill(); ctxB.closePath(); ctxB.stroke(); Tiles[rowcount[boxcount]]={x1: addHorBox, y1: boxsize*rowcount, x2: addHorBox+boxsize, y2: boxsize*(rowcount+1)}; //console.log('Tiles:',Tiles[rowcount[boxcount]]); addHorBox+=boxsize; } }else{ for (let boxcount = 0; boxcount < amountOfHorBoxes; boxcount++) { ctxB.strokeStyle = "black"; ctxB.fillStyle = "white"; ctxB.beginPath(); ctxB.rect(addHorBox+boxsize/2, addVertBox, boxsize, boxsize); ctxB.fill(); ctxB.closePath(); ctxB.stroke(); Tiles[rowcount[boxcount]]={x1: addHorBox, y1: boxsize*rowcount, x2: addHorBox+boxsize, y2: boxsize*(rowcount+1)}; //console.log('Tiles:',Tiles[rowcount[boxcount]]); addHorBox+=boxsize; } } addHorBox=0; addVertBox+=boxsize; } }

No he podido verificar completamente si llené la matriz correctamente, pero independientemente, no contiene los valores fuera de su alcance. ¿Cómo hago esto?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

En su código, está accediendo a la matriz de mosaicos de esta manera:

 Tiles[rowcount[boxcount]]={x1: addHorBox, y1: boxsize*rowcount, x2: addHorBox+boxsize, y2: boxsize*(rowcount+1)};

Entonces, el índice que está utilizando es el valor almacenado en la propiedad boxcount de rowcount , es decir, lo mismo que hacer:

 let index = rowcount[boxcount]; Tiles[index]={x1: addHorBox, y1: boxsize*rowcount, x2: addHorBox+boxsize, y2: boxsize*(rowcount+1)};

Dado que el valor de rowcount[boxcount] no está definido, está almacenando su objeto en Tile[undefined] .

Para acceder a la matriz bidimensional, debe hacer esto:

 Tiles[rowcount][boxcount]={x1: addHorBox, y1: boxsize*rowcount, x2: addHorBox+boxsize, y2: boxsize*(rowcount+1)};

Además, inicialmente solo tiene una fila disponible, ya que inicializa su matriz de esta manera: Tiles = [[]];

Lo que recomendaría es inicializar Tiles como una matriz vacía: Tiles = [];

Luego, para cada fila, inserte una nueva matriz vacía en Tiles :

 for (let rowcount = 0; rowcount < amountOfrows; rowcount++) { ctxB.lineWidth = 1; Tiles.push([]); ... }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!