当函数触发时,内部for循环号再次返回默认值

时间:2018-07-20 14:55:55

标签: javascript

我在for循环中有一个函数。就像;

function a(){
   var i=0;
   var endNumber= data.number;
   for(;i=!endNumber;i++){
      //doing stuff
   }
}

因此,我想当函数调用“ i”值时再次获得“ i”值的结尾。因为data.number总是在变化。

2 个答案:

答案 0 :(得分:1)

您可以这样做

let data = { number: 5 };

function a() {
  var i = 0;
  return function() {
    var endNumber = data.number;
    for (; i !== endNumber; i++) {
       console.log(i);
    }
    console.log('done');
  }
}

const func = a();

func();
data = { number: 10 };
func();

答案 1 :(得分:1)

可以在循环外部声明i,以使其独立于函数调用:

var i = 0;

funcion a() { /*...*/ }

或者从函数中返回i并在下次传递它(可能会更简洁):

function a(i = 0) {
 while(i !== data.number) {
   //...
   i++;
  }
  return i;
}

所以一个人可以做

var prev = a();

a(prev);