Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在for的循环中循环_Javascript_Loops - Fatal编程技术网

Javascript 在for的循环中循环

Javascript 在for的循环中循环,javascript,loops,Javascript,Loops,我正在处理一个代码,我有一个问题: for的循环与while不起作用 这意味着在i=0运行后,执行脚本,然后代码停止。 期望值:代码可以在i=0,1,2,3等情况下持续运行。 因此,我如何修改代码,使之像那样工作,请帮助,非常感谢 function FOLDER\u SCAN\u ONLY(){ //列出文件夹中的文件夹 var ss=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“扫描结果”) var sheet=Spreadshee

我正在处理一个代码,我有一个问题:

for的循环与while不起作用

这意味着在i=0运行后,执行脚本,然后代码停止。

期望值:代码可以在i=0,1,2,3等情况下持续运行。

因此,我如何修改代码,使之像那样工作,请帮助,非常感谢

function FOLDER\u SCAN\u ONLY(){
//列出文件夹中的文件夹
var ss=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“扫描结果”)
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“文件夹扫描”);
var startRow=2;
var numRows=sheet.getLastRow();
var dataRange=sheet.getRange(startRow,1,numRows,sheet.getLastColumn());
var data=dataRange.getValues();
对于(变量i=0;数据中的i;i++){
var rowData=数据[i];
如果(!rowData[1])继续;
如果(行数据[2]!=“确定”)继续;
如果(行数据[3]!='')继续;
var folder_id=rowData[1];
var parent=DriveApp.getFolderById(文件夹id)
var childFolders=parent.getFolders();
while(childFolders.hasNext()){
var childFolder=childFolders.next()
风险值数据=[
childFolder.getName(),
childFolder.getUrl(),
childFolder.getId(),
childFolder.getParents().next().getName()
];
//写
ss.appendRow(数据)
sheet.getRange(2+i,4).setValue('done'))
}
}
}

您可以使用这两个循环,但它们的行为可能与您预期的不同



function forWhileLoop(){
for (let i=0; i < data.length; i++){
  loop = true
  console.log(`processing: ${i}`)
  while (loop == true){
    console.log(`loop is ${loop}`)
    loop = false
    console.log(`loop is ${loop}`)
  }
  }
  console.log('all done')
}

forWhileLoop()

// Results in 

processing: 0
loop is true
loop is false
processing: 1
loop is true
loop is false
processing: 2
loop is true
loop is false
processing: 3
loop is true
loop is false
processing: 4
loop is true
loop is false
processing: 5
loop is true
loop is false
processing: 6
loop is true
loop is false
processing: 7
loop is true
loop is false
processing: 8
loop is true
loop is false
processing: 9
loop is true
loop is false
all done

https://repl.it/repls/EnormousNegligibleTechnology

用于whileloop()的函数{
for(设i=0;i
您可以使用这两个循环,但它们的行为可能与您预期的不同



function forWhileLoop(){
for (let i=0; i < data.length; i++){
  loop = true
  console.log(`processing: ${i}`)
  while (loop == true){
    console.log(`loop is ${loop}`)
    loop = false
    console.log(`loop is ${loop}`)
  }
  }
  console.log('all done')
}

forWhileLoop()

// Results in 

processing: 0
loop is true
loop is false
processing: 1
loop is true
loop is false
processing: 2
loop is true
loop is false
processing: 3
loop is true
loop is false
processing: 4
loop is true
loop is false
processing: 5
loop is true
loop is false
processing: 6
loop is true
loop is false
processing: 7
loop is true
loop is false
processing: 8
loop is true
loop is false
processing: 9
loop is true
loop is false
all done

https://repl.it/repls/EnormousNegligibleTechnology

用于whileloop()的函数{
for(设i=0;i
while循环仅在条件为真时运行,但它将在for循环中每个周期至少检查一次。如果希望它每次都运行,可以将其更改为do-while循环。我不确定你想要完成什么,但是你可以在for循环中加入while循环

for(let i = 0; i < 5; i++){
  console.log('Starting a cycle');
  let bool = true;
  let value = 0;
  while(bool){
    console.log('While loop');
    if(value === 3){
      bool = false;
    } else {
      value += 1;
    }
  }
}
如您所见,while循环将运行for循环的每个周期——假设其条件为true。如果该条件在第一个while循环中变为false,但再也不会变为true,则将在for循环的所有后续循环中跳过while循环

for(let i = 0; i < 5; i++){
  console.log('Starting a cycle');
  let bool = true;
  let value = 0;
  while(bool){
    console.log('While loop');
    if(value === 3){
      bool = false;
    } else {
      value += 1;
    }
  }
}
例如,如果我们稍微更改代码

let bool = true;
for(let i = 0; i < 5; i++){
  console.log('Starting a cycle');
  let value = 0;
  while(bool){
    console.log('While loop');
    if(value === 3){
      bool = false;
    } else {
      value += 1;
    }
  }

while循环将仅在条件为true时运行,但它将在for循环的每个周期中至少检查一次。如果希望它每次都运行,可以将其更改为do-while循环。我不确定你想要完成什么,但是你可以在for循环中加入while循环

for(let i = 0; i < 5; i++){
  console.log('Starting a cycle');
  let bool = true;
  let value = 0;
  while(bool){
    console.log('While loop');
    if(value === 3){
      bool = false;
    } else {
      value += 1;
    }
  }
}
如您所见,while循环将运行for循环的每个周期——假设其条件为true。如果该条件在第一个while循环中变为false,但再也不会变为true,则将在for循环的所有后续循环中跳过while循环

for(let i = 0; i < 5; i++){
  console.log('Starting a cycle');
  let bool = true;
  let value = 0;
  while(bool){
    console.log('While loop');
    if(value === 3){
      bool = false;
    } else {
      value += 1;
    }
  }
}
例如,如果我们稍微更改代码

let bool = true;
for(let i = 0; i < 5; i++){
  console.log('Starting a cycle');
  let value = 0;
  while(bool){
    console.log('While loop');
    if(value === 3){
      bool = false;
    } else {
      value += 1;
    }
  }