createModelView: function (obj,vitalslength,headerValue) {
for(i = 0, vitalsLen = vitalslength; i < vitalsLen; i++) {
// Do some logic
}
}
两个问题
我应该在哪里放置函数的return语句。如果我放在for循环中它会工作。
当我调用此函数时Obj.createModelView(arguments);
为什么它不会执行两次或n次,具体取决于vitalsLength。 It only executes once.
答案 0 :(得分:2)
To 1。:如果在循环中放置一个无条件return
语句,那么你所描述的内容将会发生:循环将只执行一次。因此,您应该在循环之后放置return
语句。
答案 1 :(得分:2)
试试这个:
createModelView: function (obj,vitalslength,headerValue) {
for(var i = 0; i < vitalslength; i++) {
// Do some logic
}
return;
}
答案 2 :(得分:2)
如果将return
置于for
循环内,则只执行一次。由于return
要求函数停止执行,并返回您要求的值。
您可能已将return
放在for
循环中,这就是它只执行一次的原因。
答案 3 :(得分:1)
一些可能的问题:
首先确保在for循环之前声明两个变量
var i=0, vitalsLen=0;
并检查以确保vitalslength是一个数字。您可以使用isNaN
或typeof
支票来执行此操作。
if (isNaN(vitalslength))
alert("vitalsLength is not a number");
其中一个可能会或可能不会导致问题,请告诉我。
另外......我不记得javascript和其他语言是否相同,
但++i
使用效率高于i++
。
关于这两个问题:
答案 4 :(得分:0)
(1)不,如果将return语句放在循环中,它将不起作用。如果将它放在循环中,则该函数将在第一个循环中返回。 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次)。要调用obj.createModelView函数n次,你必须将函数调用放在循环中。
var i, n = 4;
for(i=0; i < n; i += 1) {
obj.createModelView();
}