For循环不会执行两次

for loop does not execute twice

本文关键字:两次 执行 循环 For      更新时间:2023-09-26
 createModelView: function (obj,vitalslength,headerValue) {                     
    for(i = 0, vitalsLen = vitalslength; i < vitalsLen; i++) {    
      // Do some logic    
      }    
   } 

两个问题
  1. 我应该把函数的返回语句放在哪里?如果我把它放在for循环中,它会工作吗?

  2. 当我调用这个函数Obj.createModelView(arguments);时,为什么它不执行两次或n次,取决于vitallength。It only executes once.

如果你在循环中放置一个无条件的return语句,就像你在2中描述的那样。将发生:循环将只执行一次。因此,应该将return语句放在循环之后。

试试这个:

createModelView: function (obj,vitalslength,headerValue) {                     
    for(var i = 0; i < vitalslength; i++) {    
        // Do some logic    
    }   
    return; 
} 

如果您将return放在for循环中,那么它将只执行一次。由于return要求函数停止进一步执行并返回您要求的值。

您可能将return放在for循环中,这就是为什么它只执行一次。

一些可能的问题:

首先确保在for循环

之前声明这两个变量
var i=0, vitalsLen=0;

还要检查确保vitallength是一个数字。您可以使用isNaNtypeof检查。

if (isNaN(vitalslength))
  alert("vitalsLength is not a number");

可能是这些因素中的一个,也可能不是,请告诉我。

也……我不记得javascript和其他语言中是否一样了,但是++ii++更有效。

关于这两个问题:

  1. 如果你真的需要,它可以放在for循环之后。

(1)不,如果将return语句放入循环中,它将不起作用。如果将其放入循环中,则该函数将在第一个循环中返回。返回语句退出调用obj.createModelView()函数。

createModelView: function (obj, vitalslength, headerValue) {
    var i, vitalsLen = vitalsLength;    
    for(i = 0; i < vitalsLen; i += 1) {
        // Do some logic
    }
    return;
}

(2)当你调用函数一次时,函数不会执行两次(或n次)。调用对象。createModelView函数n次,你必须把函数调用在循环中。

var i, n = 4;
for(i=0; i < n; i += 1) {
    obj.createModelView();
}