forサイクルとfor...inサイクルの違い

3086 ワード

forループ配列、文字列をループするために一般的に使用されます
var array = [1,2,3,4,5,6];
var sum = 0;
for (var i=0; i<array.length; i++){
    sum+=array[i];
}
    alert(sum);

for...inループは、通常、オブジェクトをループするために使用されます.
var stu = {
        {name:"  ",
        sex:" ",
        age:13},
        {name:"  ",
        sex:" ",
        age:18},
        {name:"  ",
        sex:" ",
        age:10}
    };

    for(var i in stu){
        document.write(stu[i].name);
        document.write(stu[i].age);
    }

彼らの違いを詳しく説明します.ここでは、for inが配列ではなくarrayオブジェクトを遍歴していることをコードで検証します.アクセスする各値は、配列要素ではなくarrayの各属性です.たとえば、次のようにします.
var array = [1,2,3,4,5,6];
    array[10] = 10;
    for (var j in array){
        alert(typeof j);
        break;
    }

j,jの値をStringと同じコードでもう一度入力
var array = [1,2,3,4,5,6];
    for (var i=0; i<array.length; i++){
        alert(typeof  i);
        break;
    }

入力i,iの値はNumberなのでfor inとforには違いがあります.さらに,for inの使用効率はforサイクルよりはるかに低い.