0

ネストされたオブジェクトを含む JavaScript オブジェクトがあります。「for in」ループを使用してこれらを反復処理したいのですが、これはオブジェクトではなく文字列を返しますか?

コード:

var myObject = {


    myNestedObject : {

        key1 : value 1 

    }

}

そして、私がループした場合:

for(theObject in myObject){

    alert(typeof theObject);

}

これは文字列「myNestedObject」を返しますが、オブジェクト自体は返しません。

なんで?

4

4 に答える 4

6

theObjectプロパティキーです。あなたが望むのはおそらく次のとおりです。

for(var key in obj){
    var theObject = obj[key];
}
于 2012-10-25T17:02:09.320 に答える
2

for...inそれがループの仕組みです。代わりに次のように書きます。

for(prop in Myobject){    
    alert(Myobject[prop]);
}
于 2012-10-25T17:00:11.910 に答える
1

for...inオブジェクトのプロパティをループします。

for(key in myObject){
  var theObject = myObject[key]
  //theObject = { key1: value 1 }

  console.log(typeof theObject);
  //"object"
}
于 2012-10-25T17:00:26.450 に答える
0

独自のプロパティが必要な場合は、継承されたオブジェクトではなく、ネストされたオブジェクトを使用する必要があります。

for(theObject in myObject){
  if (myObject.hasOwnProperty(theObject)) {
     alert(typeof myObject[theObject]);
  }
}

typeof をアラートtheObjectすると、オブジェクトのタイプが表示されます...文字列 - これがキーであるため...オブジェクトではありません...しかし、オブジェクトのタイプであるアラートmyObject[theObject]が発生objectします。

于 2012-10-25T17:16:20.443 に答える