2016-02-29 68 views
0

我需要帮助理解为什么我的for循环会在数组中找到正确的行号,但一旦它离开循环,它将输出不正确的值。For循环在循环后删除正确的值

Code.gs

//Determines the row the Field Office is in 
 
    for (var r = 0; r < dataValues.length; r++) { 
 
    if (dataValues[r][1] == theFormObject.fieldOfficeFFO) { 
 
     var q = dataValues[r][1]; 
 
     Logger.log('q inside loop: ' + q); //Row Value inside loop 
 
     Logger.log('r inside loop: ' + r); // Row number inside loop 
 
    } 
 
    } 
 
    Logger.log('q outside loop: ' + q); //Row Value outside loop 
 
    Logger.log('r outside loop: ' + r); // Row number outside loop

Logger.logs enter image description here

+0

你需要打破的循环,像这样通过运行直至R到达'dataValues.length' –

回答

0

你是对的罗宾,我是在Java的太多了。当然你需要休息一下。否则,循环继续,直到dataValues的长度达到,所以r是rizing。 中断告诉循环直接离开它,而不需要进一步处理。

//Determines the row the Field Office is in 
for (var r = 0; r < dataValues.length; r++) { 
    if (dataValues[r][1] == theFormObject.fieldOfficeFFO) { 
     var q = dataValues[r][1]; 
     Logger.log('q inside loop: ' + q); //Row Value inside loop 
     Logger.log('r inside loop: ' + r); // Row number inside loop 
     break; 
    } 
} 
Logger.log('q outside loop: ' + q); //Row Value outside loop 
Logger.log('r outside loop: ' + r); // Row number outside loop 
+0

这个答案的值加@RobinGertenbach评论解决了我的问题。 –

+1

Javascript使用函数范围不阻止范围 –

+0

@RobinGertenbach我在块内外都尝试了“q”,并且都工作。学到了一些新的东西,现在对未来的编码有好处。 –