Оператор IF. Запустить функцию, если данные перечислены в переменной

#javascript #google-apps-script #google-sheets

#javascript #google-apps-script #google-таблицы

Вопрос:

Я пытаюсь получить значение из электронной таблицы Google. Я перебираю каждый столбец, чтобы получить значения, и хочу установить условие, если значение в столбце равно 1, или 8, или 15, или 22, 29,……. ( число увеличивается на 7, начиная с 1 до 365), код будет выполняться, иначе он не будет выполняться.

Сначала я пытаюсь использовать цикл while для увеличения.

 var data = 1;
 while(data < 365){
 data  = 7;
 Logger.log(data); //data 1,8,15,22,29
  

Итак, теперь я хочу сравнить приведенные выше данные с моим следующим условием, которое является условием getCol.
Таким образом, каждый раз, когда числа var «data» совпадают с числами var «getCol», код будет выполняться.

 function runCode(){
var ss = SpreadsheetApp.getActiveSheet().getSheetByName("Data");
var lastRow = ss.getLastRow();

 for(var x=11; x<ss.getLastColumn(); x  ){
 var getCol = ss.getRange(ss.getLastRow(),x).getValue(); //value=6,7,8,9,10,11,12........
   
    if(getCol === ""){
          false;

        }else if(getCol === 8 || getCol === 15){
          ssRota.getRange(ldap,getCol).setValue("Test");

        }
        else{
          ssRota.getRange(ldap,getCol).setValue("Input");
}
  

Как вы можете видеть, в настоящее время я использую оператор OR. Если значения равны 8 или 15, код будет запущен и установит значение в каждом столбце на «Test». Но теперь будет безумием, если я захочу написать оператор OR 8,15,22,29 …… до 365.
Я пытаюсь с

 else if(getCol === data){
 console.log("same");
}

  

но, похоже, это не сработало. Есть предложения?

Ответ №1:

Вместо

 else if(getCol === 8 || getCol === 15){
  

вы можете попробовать это

 else if(getCol % 7 === 1){
  

Комментарии:

1. вау! хорошая мысль. Это сработало идеально. Большое спасибо, чувак