首页 > 解决方案 > 如果某个变量包含某个字符串,则更改变量中的值?

问题描述

在我的 excel 电子表格中,我有学生和 LDI 年份字段。

我创建了一个名为 studentandYear 的新变量,它创建了一个包含姓名和年份的新字符串。使用 studentandYear 变量中的年份值,我希望能够创建另一个名为 tag 的变量,其中包含值“year LDI”。您应该能够根据年份切换标签的值。

当我控制台记录标签值时,我只得到一个名为“2019 LDI”的第一个标签,但是第二个标签没有显示在 console.log 上。有人可以帮忙吗?

function myFunction() {

  var ss = SpreadsheetApp.getActive().getSheetByName("Studentlist");
  var lr = ss.getLastRow();
  var date = new Date();
  var day = date.getDate();
  var month = date.getMonth()+1;
  var year = date.getFullYear();
  var time = date.toLocaleTimeString();


  if(day < 10)
    day = "0" + day;

  if(month < 10)
    month = "0" + month;

  var dateString = day+"/" + month +"/"+year+ " - " + time;

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

    var student = ss.getRange(i, 1).getValue();
    var year = ss.getRange(i, 2).getValue();

    var studentandYear = student + ' '+ year;

    var tag = "";


    if(studentandYear.indexOf("2019")){

      tag = "2019 LDI"


    } else if(studentandYear.indexOf("2020")){

       tag = "2020 LDI"


    }
          Logger.log(tag)

  }




}

标签: javascriptgoogle-apps-script

解决方案


方法indexOf()返回

一个数字,表示指定搜索值第一次出现的位置,如果从未出现则为-1

参考这里

您的代码假定indexOf它将返回一个布尔值(truefalse),这不是它的工作方式。

所以你需要改变代码说

if(studentandYear.indexOf("2019") != -1) { // i.e. '2019' does not occur

相似地

} else if(studentandYear.indexOf("2020") != -1){

推荐阅读