迭代后返回while循环 - 当条件再次为真时?

时间:2017-10-28 18:12:06

标签: javascript node.js while-loop iteration

我想知道是否可以回到while循环而不是再次输入它?

简单示例:

let sum = 0;
let value = 10;

while (sum < value) {
    // do code
    sum++;
};

// sum is changed for some reason outside of loop, after iteration
sum = 3

// iterate through the loop again?

而不是..

let sum = 0;  
let value = 10;

while (sum < value) {
    // do code
    sum++;
};

// sum is changed for some reason outside of loop, after iteration
sum = 3;

while (sum < value) {
  // do same code again
  sum++;
};

我想你可以使用while循环创建一个函数但是有可能以其他方式处理这个吗?

提前致谢。

4 个答案:

答案 0 :(得分:1)

制作循环功能。函数有助于避免重复代码。

&#13;
&#13;
let sum = 0;  
let value = 10;

function loopy() {
  while (sum < value) {
      // do code
      console.log(sum++)
  };
}

loopy();

// sum is changed for some reason outside of loop, after iteration
sum = 3;

loopy();
&#13;
&#13;
&#13;

答案 1 :(得分:1)

如果您在ES6环境中,可以使用setter来查看对象,并在其中一个属性发生更改时执行该功能。

let obj = {
  value: 20,
  set sum(sum) { 
    while (sum < this.value) {
      // some code
      sum++;
    }
  }
};

obj.sum = 5; // execute the code inside the while 15 times
obj.sum = 10; // execute the code other 10 times

您还可以浏览Proxies

答案 2 :(得分:0)

函数是JavaScript中的基本构建块之一。函数是一个JavaScript过程 - 一组执行任务或计算值的语句。要使用某个函数,必须在要调用它的范围内的某个位置定义它。

let sum = 0;  
let value = 10;
valueSum(sum , value);
sum = 3;
valueSum(sum , value);


function valueSum(sum , Value){
while (sum < value) {
    // do code
    sum++;
};

}

答案 3 :(得分:0)

您可以获取数组中的值并循环数组和while循环内的for循环。

var sums = [0, 3],
    sum,
    value = 10,
    i;

for (i = 0; i < sums.length; i++) {
    sum = sums[i];
    console.log('outer', sum);
    while (sum < value) {
        // do code
        sum++;
        console.log('inner', sum);
    }
}
.as-console-wrapper { max-height: 100% !important; top: 0; }