Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

145
Vistas
¿Cómo puedo excluir elementos nulos de la matriz de datos?

He estado usando la respuesta de Yuri a una pregunta, pero me encontré en una nueva situación y no he entendido muy bien cada paso de este método aquí:

 function myFunction() { var sheet = SpreadsheetApp.getActiveSheet(); var header = sheet.getDataRange().getValues()[0]; var data = [ ["ID","Variação","Nome Site","Obs"], [11602,185,"Camisa Teste","Teste da Observação"] ] var indexes = header.map(x => data[0].indexOf(x)); data = data.map(x => indexes.map(i => x.slice()[0] = x[i])); sheet.getRange(1, 1, data.length, data[0].length).setValues(data); }

Así es como se ve el resultado:

 let result = [ ["ID","Variação","Nome Site","Obs", "", ""], [11602,185,"Camisa Teste","Teste da Observação", "", ""] ]

Ahora, esto está devolviendo data con valores nulos. ¿Cómo puedo hacer que devuelva solo elementos de matriz mapeados? Entonces, en lugar de tener una longitud de matriz de 6, serían solo 4. Resultado esperado:

 let expectedResult = [ ["ID","Variação","Nome Site","Obs"], [11602,185,"Camisa Teste","Teste da Observação"] ]

¡Gracias!

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Una posible razón por la que tiene elementos nulos en su matriz es que las celdas al lado de su encabezado tienen " " o un carácter de espacio. Dado que está utilizando getDataRange() , también incluirá esos " " caracteres en su matriz.

Ejemplo:

Aquí, agregué un carácter de espacio a las celdas E1 y F1 :

ingrese la descripción de la imagen aquí

Estos son los valores de data después de usar la función de mapa:

ingrese la descripción de la imagen aquí

Si elimino los valores de las celdas E1 y F1 , la salida de datos es:

ingrese la descripción de la imagen aquí

Los valores nulos también pueden ocurrir si los valores debajo del encabezado se superponen con el número de columnas en su encabezado.

Ejemplo:

ingrese la descripción de la imagen aquí

Producción:

ingrese la descripción de la imagen aquí

Solución:

En lugar de usar getDataRange() , defina explícitamente el rango que está usando para el encabezado. Puede usar getRange(row, column, numRows, numColumns) o getRange(a1Notation) .

Referencia:

  • getRango(a1Notación)
  • getRange(fila, columna, numRows, numColumns)
about 4 years ago · Juan Pablo Isaza Denunciar

0

Una forma es filtrar los valores internos:

 let result = [ ["ID", "Variação", "Nome Site", "Obs", "", ""], [11602, 185, "Camisa Teste", "Teste da Observação", "", ""] ] result = result.map(x => x.filter(y => y)) console.log(result)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Quitar nulos

 function test() { Logger.log(JSON.stringify([1,2,3,null,4,null,5,''].filter(e => e))) } Execution log 7:48:37 PM Notice Execution started 7:48:37 PM Info [1,2,3,4,5] 7:48:38 PM Notice Execution completed
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda