Javascript for循环不会执行两次 createModelView:函数(obj、vitalslength、headerValue){ 对于(i=0,vitalsLen=vitalslength;i

Javascript for循环不会执行两次 createModelView:函数(obj、vitalslength、headerValue){ 对于(i=0,vitalsLen=vitalslength;i,javascript,Javascript,两个问题 我应该将函数的return语句放在哪里。如果我把它放在for循环中,它会工作的 当我调用这个函数时,Obj.createModelView(参数)为什么不执行两次或n次,取决于生命长度它只执行一次。 To 1:如果在循环中放置一个无条件的return语句,则与您在2中描述的完全相同。将发生:循环只执行一次。因此,您应该将return语句放在循环之后 试试这个: createModelView: function (obj,vitalslength,headerValue) {

两个问题

  • 我应该将函数的return语句放在哪里。如果我把它放在for循环中,它会工作的

  • 当我调用这个函数时,
    Obj.createModelView(参数)为什么不执行两次或n次,取决于生命长度<代码>它只执行一次。


  • To 1:如果在循环中放置一个无条件的
    return
    语句,则与您在2中描述的完全相同。将发生:循环只执行一次。因此,您应该将
    return
    语句放在循环之后

    试试这个:

     createModelView: function (obj,vitalslength,headerValue) {                     
        for(i = 0, vitalsLen = vitalslength; i < vitalsLen; i++) {    
          // Do some logic    
          }    
       } 
    
    createModelView:函数(obj、vitalslength、headerValue){
    对于(var i=0;i
    如果将
    return
    放入
    for
    循环中,则它将只执行一次。因为
    return
    要求函数停止进一步执行,并返回您要求它返回的值

    您可能已将
    return
    放入
    for
    循环中,这就是它只执行一次的原因。

    一些可能的问题:

    首先确保在for循环之前声明这两个变量

    createModelView: function (obj,vitalslength,headerValue) {                     
        for(var i = 0; i < vitalslength; i++) {    
            // Do some logic    
        }   
        return; 
    } 
    
    还要检查以确保vitalslength是一个数字。您可以使用
    isNaN
    typeof
    检查来完成此操作

    var i=0, vitalsLen=0;
    
    其中一个可能会导致问题,也可能不会,请告诉我

    还有。。。我不记得它在javascript中是否与在其他语言中相同, 但是
    ++i
    i++
    更有效

    关于两个问题:

  • 如果你真的想要,它可以放在for循环之后
  • 希望上述方法能解决这个问题
  • (1) 不,如果将return语句放入循环中,它将不起作用。如果将其放在循环中,那么函数将在第一个循环中返回。return语句退出被调用的obj.createModelView()函数

    if (isNaN(vitalslength))
      alert("vitalsLength is not a number");
    
    createModelView:函数(obj、vitalslength、headerValue){
    变量i,vitalsLen=vitalsLength;
    对于(i=0;i
    (2) 当您调用函数一次时,函数不会执行两次(或n次)。要n次调用obj.createModelView函数,必须将函数调用放入循环中

    createModelView: function (obj, vitalslength, headerValue) {
        var i, vitalsLen = vitalsLength;    
        for(i = 0; i < vitalsLen; i += 1) {
            // Do some logic
        }
        return;
    }
    
    var i,n=4;
    对于(i=0;i
    您希望将
    return
    语句放在哪里?什么是
    参数
    ?为什么要为
    vitalslength
    创建别名?在
    i
    之前应该有一个
    var
    ,否则会污染命名空间。为什么有一个长度变量的值与另一个变量的值完全相同?有没有理由在最后有一个空的返回值?我想在他的应用程序中它不会是空的。他可能会返回
    //do some logic
    块中定义的内容-只是一个结构示例。
    var i, n = 4;
    for(i=0; i < n; i += 1) {
        obj.createModelView();
    }