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