Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

144
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda