Omar, miembro de este gran equipo de trabajo, nos hizo el favor de escribir este artículo porque conoce perfectamente el tema.
Solución:
Puedes simplemente declarar un regular array al igual que:
var arry = [];
Luego, cuando tenga un par de valores para agregar al arraytodo lo que necesitas hacer es:
arry.push([value_1, value2]);
Y sí, la primera vez que llamas arry.push
el par de valores se colocará en el índice 0.
De la respuesta de nodejs:
> var arry = [];
undefined
> arry.push([1,2]);
1
> arry
[ [ 1, 2 ] ]
> arry.push([2,3]);
2
> arry
[ [ 1, 2 ], [ 2, 3 ] ]
Por supuesto, dado que javascript se escribe dinámicamente, no habrá un verificador de tipos que imponga que el array sigue siendo bidimensional. Deberá asegurarse de agregar solo pares de coordenadas y no hacer lo siguiente:
> arry.push(100);
3
> arry
[ [ 1, 2 ],
[ 2, 3 ],
100 ]
Si desea inicializar junto con la creación, puede usar relleno y mapa.
const matrix = new Array(5).fill(0).map(() => new Array(4).fill(0));
5 es el número de filas y 4 es el número de columnas.
ES6
Matriz m
con tamaño 3 filas y 5 columnas (quitar .fill(0)
para no iniciar por cero)
[...Array(3)].map(x=>Array(5).fill(0))
let Array2D = (r,c) => [...Array(r)].map(x=>Array(c).fill(0));
let m = Array2D(3,5);
m[1][0] = 2; // second row, first column
m[2][4] = 8; // last row, last column
// print formated array
console.log(JSON.stringify(m)
.replace(/([[)(.*)(]])/g,'[n [$2]n]').replace(/],/g,'],n ')
);
Ten en cuenta recomendar este escrito si lograste el éxito.