Tengo una matriz que quiero aplanar para iterar sobre ella. Obtengo la matriz y luego la aplano con la siguiente función:
var Array = ss.getRange("G2:G").getValues(); ArrayFlat = flatten(Array);
Función auxiliar Flatten
function flatten(array) { var flattenedArray = []; for (var i = 0; i < array.length; i++) { flattenedArray.push(array[i][0]) } return flattenedArray; }
Esperaría el mismo resultado para los dos últimos registros siguientes, pero obtengo registros diferentes.
function test() { Logger.log(Array) // unflattened array Logger.log(flatten(Array)) // flattended array Logger.log(ArrayFlat) // [] }
¿Puede alguien indicarme la dirección correcta, es decir, dónde está el error?
EDITAR: tengo una solución a mi problema (plano ()), pero no una respuesta a mi pregunta de por qué la salida de mis registros es tan diferente.
Probar:
ss.getRange("G2:G").getValues().flat();
function flatten() { const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName("Sheet0"); const array = ss.getDataRange().getValues(); var fA = []; if(array.length) { array.forEach((r,i) => { if(array[i].length) { r.forEach((c,j) => { fA.push(c); }) } }) } else { fA.push(r[0]) } Logger.log(JSON.stringify(fA)); }