javascript - 跳过 Javascript 数组中的空格

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

我有一个循环数组函数,用于自动填充值。其中一些值故意留空。但是,数组似乎为数组中的所有空白值分配了一个“未定义”标签。

function SubGroup_Update() {

  var Metrics = SpreadsheetApp.openById("10Wl1B4AtdLHJXBbLbMQbSdtRyAb61biCWYpOQEEywIY"); // METRICS spreadsheet
  var Data = SpreadsheetApp.getActiveSpreadsheet(); // DATA spreadsheet
  var SubsMetricSheet = Metrics.getSheetByName('Sub Group Metrics'); // METRICS "Sub Group" sheet 
  var SubGroupDataSheet = Data.getSheetByName("The Sub Group_Numbers") // DATA "Sub Group" sheet
  var SubGroupAllValues = SubGroupDataSheet.getRange(2, 1, SubGroupDataSheet.getLastRow() - 1, SubGroupDataSheet.getLastColumn()).getValues();
  var SubsDataLastRow = SubGroupDataSheet.getLastRow(); // Get the number for the amount of rows with info in the DATA "Sub Group" Sheet
  var FeedDataSheet = Data.getSheetByName("The Feed_Raw") // DATA "Feed" sheet
  var FeedAllValues = FeedDataSheet.getRange(2, 1, FeedDataSheet.getLastRow() - 1, FeedDataSheet.getLastColumn()).getValues();
  //var SubsDataRange = SubGroupDataSheet.getRange("A2:K");  // The entire range of cells in the DATA "Sub Group" Sheet, for sorting
  var SubGroupObj = {}; // Object for "Subgroup" values

  for (var SG = SubGroupAllValues.length - 1; SG >= 0; SG--) // for each row in the "Sub Group" sheet...
  {
    //... Add "Sub Group KEY (Col. #11 [K])" & "FYI Category Name (Col. #1 [A])" in Feed 2D Array.
    SubGroupObj[SubGroupAllValues[SG][10]] = SubGroupAllValues[SG][0];
  }


  for (var F = FeedAllValues.length - 1; F >= 0; F--) // for each row in the "Feed" sheet...
  {
    var Feed_SubGroupKey = FeedAllValues[F][92]; // ...Add "Sub Group (Col. #93 [CO])" in array. 
    {
      // If Sub Group array dont match "Sub Group Key (Col. #93 [CO])" & "FYI Topic Name (Col. #4 [D])... "
      if (SubGroupObj[Feed_SubGroupKey] != FeedAllValues[F][3]) {
        FeedAllValues[F][3] = SubGroupObj[Feed_SubGroupKey]; // ...Change FYI Category Name in FYI Topic Sheet 
      }
    }
  }

  // Decalare var. from 2nd row to last row of FYI Topic sheet
  var FeedDestinationRange = FeedDataSheet.getRange(2, 1, FeedAllValues.length, FeedAllValues[0].length);

  FeedDestinationRange.setValues(FeedAllValues); // placed changed FYI Category 2D array in Mod sheet

  var SubGroupAllRange = SubGroupDataSheet.getRange(2, 1, SubGroupDataSheet.getLastRow() - 1, SubGroupDataSheet.getLastColumn()); // complete range of Mod Status sheet 

  // Sort Sheet by - Category Name, then Category Topic
  SubGroupAllRange.sort([{
    column: 1,
    ascending: true
  }, {
    column: 2,
    ascending: true
  }]);

  Logger.log("The Sub Group Data Sheet has updated  " + SubsDataLastRow - 1 + " data files")

}

任何人都可以帮我修改此函数,以便它跳过在我的文件中找到的任何空白单元格吗?

最佳答案

您尚未指定要过滤的数组,但有两个选项。

你在循环中检查它

for(var F = FeedAllValues.length-1;F>=0;F--) {
    if (typeof FeedAllValues[F] !== 'undefined') {
}

或者预先过滤数组

FeedAllValues = FeedAllValues.filter(value => typeof value !== 'undefined')

还有一个旁注,您应该在循环外部定义 FeedAllValues.length 并使用变量,否则每次迭代都会调用 FeedAllValues.length

关于javascript - 跳过 Javascript 数组中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59708910/

相关文章:

java - 与 switch 嵌套的 for 循环会跳过迭代

javascript - 当我尝试基本登录时 axios.post 没有给出任何值

java - 从 map 中获取数组并转换键

保存子数组的 Javascript 数组键

javascript - 遍历包含数组的对象

java - for 星形图案循环

javascript - 响应式谷歌可视化数据表

javascript - 是的架构 : How to add new line in error message

javascript - 每次点击都会将其功能的性能提高一倍

java - 不在声明中时的数组初始化语法