javascript - 删除或忽略数组中的空单元格

标签 javascript arrays for-loop google-apps-script multidimensional-array

我已经尝试了我在这里看到的所有解决方案/代码,但没有任何效果。没有改变任何东西。 我有一个循环来定义我的数组。一些单元格在我复制的位置被合并,并且数组也包含空列。

这是我的代码:

var array = []; 
  for (var m = 0; m < startRows.length; m++) { 
    array[m] = sourceSheet.getRange(startRows[m],5,3,29).getValues().filter(String); 
  }
 // Logger.log("array:   " + array[0]);  

为什么这不起作用?

编辑: 数组[0]的日志:

[20-01-14 14:54:29:668 GMT] array:   Chlorine content,,,,,1 / d,,ASTM D5463,,,,,NSP601,,,Sat Dec 30 1899 14:05:00 GMT+0000 (Greenwich Mean Time),,0.42,,,,ppm,,,0.3 - 0.5,,,,,TREATED SEAWATER,,,,,,,,,,,,,,,,,,,,,,,,,,,,

最佳答案

首先,您不应该使用循环来获取 Range 中的值。 您可以执行相同的操作:

var array = sourceSheet.getRange(startrow,5,3,29).getValues();

或者如果您正在获取工作表的所有值:

var array = sourceSheet.getDataRange().getValues()

但是,您可以使用 splice 删除数组的空白点。功能。由于它正在删除位置,因此每次找到空位时数组都会缩小,因此这里使用的 for 循环必须向后移动:

  for (var i = array.length; i >= 0; i--){

    if (array[i] == ''){
      array.splice(i, 1); //i is the index, 1 is the number of positions to delete
    }

  }
  Logger.log(array);  

如果您在没有循环的情况下声明并设置数组的值,它将是一个二维数组,如documentation中所示。 。

关于javascript - 删除或忽略数组中的空单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59736187/

相关文章:

javascript - 我的标签不工作

javascript - 如何获取从240个字符到最后一个字符的所有字符?

javascript - 将响应式(Reactive)表单与自定义输入等绑定(bind)

javascript - Mongodb,在插入新值之前检查对象/模型的数组

python - 从 csv 文件中删除特定字符,并重写到新文件

python - 包含多个条件的列表

javascript - Bootstrap 画廊网格

javascript dom 对象数组?

c - "char s[static 10]"等函数的数组参数中 static 关键字的用途是什么?

c++ - 自定义堆栈的 "seek"函数返回数组中的位置而不是数组中位置的值