再帰的なループを処理するためのいくつかの方法は、(誰がここにSICPを覚えている?ああ...スキームを祝福)があります。
createModelView: function (obj,vitalslength,headerValue) {
for(vitalsCount = 0, vitalsLen = vitalslength;
vitalsCount < vitalsLen; vitalsCount++) {
// Business logic... with obj and headerValue
}
// the following will force this method to keep going with the same parameters
// unless you put a conditional return statement before it
// I always use an interim variable so JS can't get confused.
var args = arguments;
// are you sure it's this here and not DynamicModelView.createModelView
this.createModelView.apply(this, args)
}
より現実的(かつ迅速)、あなたは単に関数内でwhileループを配置することがありますが、機能はだけにして、あなたをx回を実行することを確認するには
createModelView: function (obj,vitalslength,headerValue) {
do {
for(vitalsCount = 0, vitalsLen = vitalslength;
vitalsCount < vitalsLen; vitalsCount++) {
// Business logic... with obj and headerValue
}
} while(/* condition which needs to be met to finish loop*/);
}
これを行うことができます:
// notice the last parameter?
createModelView: function (obj,vitalslength,headerValue, x) {
for(var i = 0; i < x; i++)
{
for(vitalsCount = 0, vitalsLen = vitalslength;
vitalsCount < vitalsLen; vitalsCount++) {
// Business logic... with obj and headerValue
}
}
}
うまくいけばうまく始めることができます。
あなたの説明は少し曖昧です...どのようにその関数を呼び出しますか?実行し続けるのはどういう意味ですか?再帰の意味は、条件がアクティブである間に関数が実行を継続することです。あなたの退室はどうですか?その関数を呼び出すと、「引数」は何を意味しますか?同じ引数を渡し続けると、関数は実行を継続します。 –
内部から呼び出す場合は、再帰を停止する条件が必要です。さもなければ、それは無限に自身を呼び出します。 – RobG
"obj"パラメータとは何ですか? ...しかし、主に、あなたは 'this'を使う方法を知っていますか?機能的にプログラムするには、 'DynamicModelView.createModelView(...)'を呼び出します。 –