2016-07-13 16 views
0

Ich versuche, meine Variablen auf Null zu setzen, und basierend auf IF-Anweisungen zählen. Wenn ich jedoch den unten stehenden Code ausführe, wird ChangeOver sofort als 1 erkannt, wobei die 3. IF-Anweisung aktiviert wird und alles andere ausgeschaltet wird. Wie kann ich die Zählung für jede Variable bei 0 beginnen und die IF-Anweisungen entsprechend zählen?Setze Variable auf Null Javascript

function clearX() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheets()[0]; 

    var BlankStart = 0; 
    var CountX = 0; 
    var NewBlanks = 0; 
    var ChangeOver = 0; 

    for (var i=5;i<10;i++) { 
    var AValue = sheet.getRange(i,1).getValue(); 

    if ((BlankStart > 1) && (CountX > 3)) { //If initital blanks and more than 3 X's identified, next blanks are new blanks (FlipBlank) 
     ChangeOver = 1; 
    } 
    if ((AValue === "") && (ChangeOver = 0)) { //If Col A is blank and less than 3 X's encountered yet (FlipBlank) 
     BlankStart = BlankStart + 1; 
    } 
    if ((AValue === "") && (ChangeOver = 1)) { //If Col A is blank after 3 or more X's (FlipBlank), start new blanks 
     NewBlanks = NewBlanks + 1; 
    } 
    if (AValue === "X") { //If Col A = 'X' 
     CountX = CountX + 1; 
    } 
    sheet.getRange(i,17).setValue(BlankStart); 
    sheet.getRange(i,18).setValue(CountX); 
    sheet.getRange(i,19).setValue(ChangeOver);  
    sheet.getRange(i,20).setValue(NewBlanks); 
    }       

} 
+0

Ihre Aussage ist etwas unklar - können Sie einige Ihrer Fragen umschreiben? –

+0

können Sie überprüfen, warum der Zuweisungsoperator hier ist, anstatt if ((AValue === "") && (ChangeOver = 0)) if ((AValue === "") && (ChangeOver = 1)) –

+0

Dies hat wurde gelöst. Ich musste nur "= 0" zu "=== 0" in meinen IF-Anweisungen ändern. Vielen Dank! –

Antwort

0

Ich bin nicht ganz auf Ihre Frage klar, aber wenn ich eine Vermutung nehmen waren vertippt Sie Ihr Prädikat:

function clearX() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheets()[0]; 

    var BlankStart = 0, CountX = 0, NewBlanks = 0; 
    var ChangeOver = 0; 

    for (let i = 5; i < 10; i++) { 
    let AValue = sheet.getRange(i, 1).getValue(); 

    if (BlankStart > 1 && CountX > 3) //If initital blanks and more than 3 X's identified, next blanks are new blanks (FlipBlank) 
     ChangeOver = 1; 

    if (AValue && ChangeOver === 0) //If Col A is blank and less than 3 X's encountered yet (FlipBlank) 
     BlankStart++; 

    if (AValue && ChangeOver === 1) // If Col A is blank after 3 or more X's (FlipBlank), start new blanks 
     NewBlanks++; 

    if (AValue === "X") // If Col A = 'X' 
     CountX++; 

    sheet.getRange(i,17).setValue(BlankStart); 
    sheet.getRange(i,18).setValue(CountX); 
    sheet.getRange(i,19).setValue(ChangeOver);  
    sheet.getRange(i,20).setValue(NewBlanks); 
    }       

} 
0

Diese gelöst wurde. Ich musste nur "= 0" zu "=== 0" in meinen IF-Anweisungen ändern. Vielen Dank!

Verwandte Themen