繁体   English   中英

使用 If Else 语句打印计数

[英]Using If Else statement to print a count

我正在学习 JS 和 Google Apps 脚本。 我只是在研究示例以帮助学习。 我确信我坚持的事情很简单。 有没有办法使用相同的变量打印出戴尔和惠普的数量? 我知道我可以添加第二个变量 counter2 并使用它,但只是看起来理解首选方法。 我试图注释掉我尝试过的东西。 我引用的表有 100 戴尔和 400 惠普。

  var ss= SpreadsheetApp.getActiveSpreadsheet();
  var es = ss.getSheetByName("School1");
  var ms = ss.getSheetByName("School2");
  var hs = ss.getSheetByName("School3");
  var esValues = es.getDataRange().getValues();
  var counter = 0;
    //var esValues = es.getRange('A:C').getValues();
  Logger.log(esValues.length);
  for(var i = 0; i < esValues.length; i++){
     var data= esValues[i];
     var first = data[1];
     var last = data[0];
     var middle = data[2];
     var studentid = data[3];
     var device = data[4];
     if(device.includes("Dell")){
       counter++;
       //Logger.log(`Dell count is ${counter}`); //When add here it prints same line 100+ times  
       } else if(device.includes("HP")){
       counter++;
              }
     
  }
  Logger.log(`Dell count is ${counter}`)//Printing same count 500
  Logger.log(`Hp count is ${counter}`)//Printing same count 500
  
}```

因此,当使用一个变量记录两个不同项目的总数时不是这样做的方法。 在你的情况下,你的两个条件都会增加计数器,所以当你的 for 循环通过它时,它总是会碰到计数器,所以它会达到 500,这是设备的总数。 尝试这样的事情。

 var ss= SpreadsheetApp.getActiveSpreadsheet();
  var es = ss.getSheetByName("School1");
  var ms = ss.getSheetByName("School2");
  var hs = ss.getSheetByName("School3");
  var esValues = es.getDataRange().getValues();
  var counterDell = 0;
  var counterHP = 0; // New for just HP
    //var esValues = es.getRange('A:C').getValues();
  Logger.log(esValues.length);
  for(var i = 0; i < esValues.length; i++){
     var data= esValues[i];
     var first = data[1];
     var last = data[0];
     var middle = data[2];
     var studentid = data[3];
     var device = data[4];
     if(device.includes("Dell")){
       counterDell++;
       //Logger.log(`Dell count is ${counter}`); //When add here it prints same line 100+ times  
       } else if(device.includes("HP")){
       counterHP++;
              }
     
  }
  Logger.log(`Dell count is ${counterDell}`)//Printing same count 500
  Logger.log(`Hp count is ${counterHP}`)//Printing same count 500
  
}

device领域只有HPDells时,可以解决。 但是,如果device字段中可以使用的值更多,则没有解决方案,而是使用两个计数器。

如果只用HDDell ,试试这个。

  var ss= SpreadsheetApp.getActiveSpreadsheet();
  var es = ss.getSheetByName("School1");
  var ms = ss.getSheetByName("School2");
  var hs = ss.getSheetByName("School3");
  var esValues = es.getDataRange().getValues();
  var counter = 0;
    //var esValues = es.getRange('A:C').getValues();
  Logger.log(esValues.length);
  for(var i = 0; i < esValues.length; i++){
     var data= esValues[i];
     var first = data[1];
     var last = data[0];
     var middle = data[2];
     var studentid = data[3];
     var device = data[4];
     if(device.includes("Dell")){
       counter++;
     } 
  }
  Logger.log(`Dell count is ${counter}`)
  Logger.log(`Hp count is ${esValues.length - counter}`)
  
}```

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM