只有数组的第一个元素已输出到谷歌表,我需要输出所有元素(空/未定义元素除外)

菲尔135

我的脚本需要从一张纸中获取值并将它们放入另一张纸中。它正确地获取值。但是,当将值输出到另一个工作表时,仅输出第一个元素。我需要输出所有元素。这可以通过以下两种方式之一实现(我认为);在输出值时跳过/忽略数组的空元素或忽略源工作表中的空单元格。任何帮助表示赞赏。脚本如下:

更新代码:

function exportArds() {

  var ards = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Newtownards");
  var export = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Export");
  var ardsLastRow = ards.getLastRow();
  var exportLastRow = export.getLastRow();
  var refValues = new Array(6);
  var amountValues = new Array(6);

 //get values for export
  refValues = ards.getRange("B12:G12").getValues();
  amountValues = ards.getRange("B13:G13").getValues();

 for(var i = 2; i<=6; i++){

   var a = refValues.join().split(',').filter(Boolean);
   var b = amountValues.join().split(',').filter(Boolean);

   //get values, if any, in export sheet (used to check where the empty cells are for input) 
   var checkAmount = export.getRange(i, 4).getValue().toString();
   var checkDescription = export.getRange(i, 5).getValue().toString();
   export.getRange(i, 4).setValue(b[i-2]);
   export.getRange(i, 5).setValue(a[i-2]);
 }//close for loop
 Logger.log(a);
 Logger.log(b);
}//close function

但是,当值被正确设置为下一个工作表的单元格时,如果数组中有 2 个值,则 undefined 将输出 4 次。有没有办法防止这种情况?

菲尔135

我找到了一个适用于这个问题的解决方案,我相信它可以更干净一点,所以请随时评论任何建议!代码如下:

function exportArds() {

  var ards = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Newtownards");
  var export = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Export");

  //get values for export
   var refValues = ards.getRange("B12:G12").getValues();
   var amountValues = ards.getRange("B13:G13").getValues();

  for(var i = 2; i<=6; i++){

    var a = refValues.join().split(',').filter(Boolean);
    var b = amountValues.join().split(',').filter(Boolean);

  }//close for loop
  var aLength = a.length;
  var bLength = b.length;

  for(i = 2; i<=aLength; i++){
    export.getRange(i, 5).setValue(a[i-2]);
  }
  for(i = 2; i<=bLength; i++){
    export.getRange(i, 4).setValue(b[i-2]);
  }
}//close function

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

带所有元素(第一个元素除外)的数组未定义返回错误的长度

除了最后一个元素外,所有数组元素都未定义?

如何删除HTML表中的所有<tr>元素(第一个元素除外)

需要一个数组,其中新数组的第一个元素=除第一个元素以外的所有元素的和

迭代仅输出 JSON 数组的最后一个元素而不是所有数组

删除所有重复的类元素,第一个元素除外

获取除第一个和最后一个以外的所有数组元素

如何从元组列表字典的所有键中输出所有第一个元素?

多维数组中的array_unshift在所有数组的第一个元素处插入

如何加入数组中除第一个元素之外的所有元素?

Laravel,只有传递给路由的数组的第一个元素是可读的

JS函数创建并推入数组-只有第一个元素是NaN

交换数组的所有元素,除了第一个和最后一个

放大没有第一个元素的数组

如何添加一个空字符串作为现有数组的第一个元素?

将 logsumexp 应用于数组的所有第一个元素

Scala / Spark-如何获取所有子数组的第一个元素

从MongoDB中的所有文档中获取数组字段的第一个元素的总和

从表中删除所有子元素,除了第一个?

如果考虑到数组衰减,我只有指向第一个数组元素的指针,是否可以找到数组的长度?

查找第一个偶数元素并输出索引

使用循环从数组中删除了第一个元素,但最后一个元素在 Javascript 中存储为“未定义”

如何从数组中删除除JavaScript中的第一个元素以外的所有元素

为什么Array.from()返回未定义的第一个元素?

使用+ =运算符未定义对象中的第一个元素

jQuery如何删除未定义的第一个元素?

Angular 5,订阅firebase,第一个元素未定义

向 websocket 发送请求后,数组有一个额外的未定义元素

只有数组的最后一个元素有效