Estoy tratando de insertar un valor en una matriz 2d pero recibo el error:
No se puede leer la propiedad 'push' de indefinido
Aquí hay un MWE de mi código:
var saida = new Array() for (i in dbInfo){ saida[i].push(i) } Donde dbInfo es un rango en mi hoja, pero puede ser reemplazado por cualquier otro rango para este ejemplo. Necesito que la salida sea una matriz 2d para poder calcular los valores en la hoja.
Si acaba de crear la matriz, la matriz está vacía. Así que saida[n] será indefinido sin importar el valor que tenga n.
Primero debes crearlo. Entonces puedes empujarlo.
¿Quizás algo como esto? No está seguro de lo que necesita.
var saida = new Array() for (i in dbInfo){ saida[i]=[] saida[i].push(i) }Si dbInfo es un objeto de tipo Range from the Sheet, entonces la matriz devuelta después de usar getValues ya es una matriz 2D, por lo que bastará con una asignación simple:
function addData() { // your other code let dbInfoVals = dbInfo.getValues(); let saida = dbInfoVals; console.log(saida) } Sin embargo, si dbInfo es una matriz 1D, la transformación en una 2D se puede realizar utilizando el método de splice en JavaScript:
function addData() { // your other code let saida = []; while (dbInfo.length){ saida.push(dbInfo.splice(0, 2)); } console.log(saida); } El segundo parámetro de splice le dará la cantidad de columnas, por lo que es posible que deba ajustar esto para que coincida con su rango en consecuencia.
Deberá definir su matriz en 2d. Por ejemplo: int[,] arr= new string[3, 2];
Tendrá que iterar dos veces.
for(int col1 = 0; col1 < arr.GetLength(0); col1++){ for(int row1 = 0; row1 < arr.GetLength(1); row1++) { arr[col1,row1] = 2; } }