2008-09-09 28 views
5

JavaScriptでループを構築するにはどうすればよいですか?JavaScriptでループを構築するにはどうすればよいですか?

+0

誰かがSOを使いこなしていて、多くのことを下ろしているようです... –

+0

ahh。まあ、これについての私の暴言がユーザーボイスにあったと思うのですが、少し銃を飛ばしました。 – UnkwnTech

+0

これらの質問はポッドキャストで奨励されました。ネット上でこれを探している人がそれを見つけたり、Googleの統計情報に役立つため、サイト全体に役立つからです。 – UnkwnTech

答えて

24

for (i in things) { 
    // If things is an array, i will usually contain the array keys *not advised* 
    // If things is an object, i will contain the member names 
    // Either way, access values using: things[i] 
} 

配列を超えるitterateするfor...inループを使うのは悪い習慣です。 ECMA 262標準に反し、非標準の属性やメソッドをArrayオブジェクトに追加すると問題が発生する可能性があります。 〜によってPrototype(コメントでこれを指摘してChase Seibertのおかげで)

ループ

while (myCondition) { 
    // The loop will continue until myCondition is false 
} 
+2

配列をループするためにfor ... inを使用しないでください。これはPrototypeに問題を引き起こします。 http://www.prototypejs.org/api/arrayを参照してください。 –

+2

forループの問題は、hasOwnPropertyでチェックすると回避できます。if(!things.hasOwnProperty(i)){continue; } –

-1

JavaScriptでのループは次のようになります。ここでは

for (var = startvalue; var <= endvalue; var = var + increment) { 
    // code to be executed 
} 
1

は、forループの例です。

我々はアイテムノードの配列を持っています。ループのループについては...

for (i = startValue; i <= endValue; i++) { 
    // Before the loop: i is set to startValue 
    // After each iteration of the loop: i++ is executed 
    // The loop continues as long as i <= endValue is true 
} 

については

for(var i = 0; i< nodes.length; i++){ 
    var node = nodes[i]; 
    alert(node); 
} 
0

を参照してください、また3つのビルドでのループ構造なしにループを作成するには、再帰として知られている自己呼び出し関数の構造は、そこにあります。

は、次の点を考慮

// set the initial value 
 
var loopCounter = 3; 
 

 
// the body of the loop 
 
function loop() { 
 

 
    // this is only to show something, done in the loop 
 
    document.write(loopCounter + '<br>'); 
 

 
    // decrease the loopCounter, to prevent running forever 
 
    loopCounter--; 
 

 
    // test loopCounter and if truthy call loop() again 
 
    loopCounter && loop(); 
 
} 
 

 
// invoke the loop 
 
loop();

言うまでもないが、この構造は、多くの場合、戻り値と組み合わせて使用​​されていることを言って、これはどのようにある値に対処する小さな例です利用できない初めてではなく、再帰の終わりに:

function f(n) { 
 
    // return values for 3 to 1 
 
    //  n -n ~-n !~-n +!~-n return 
 
    // conv int neg bitnot not number 
 
    //  3 -3 2 false 0 3 * f(2) 
 
    //  2 -2 1 false 0 2 * f(1) 
 
    //  1 -1 0  true 1  1 
 
    // so it takes a positive integer and do some conversion like changed sign, apply 
 
    // bitwise not, do logical not and cast it to number. if this value is then 
 
    // truthy, then return the value. if not, then return the product of the given 
 
    // value and the return value of the call with the decreased number 
 
    return +!~-n || n * f(n - 1); 
 
} 
 

 
document.write(f(7));

関連する問題