0

私のコード:

for( var i in zones) {
                    var latlons1 = new google.maps.LatLng(zones[i].b.cen_x, zones[i].b.cen_y);
                    var latlons2 = new google.maps.LatLng(zones[i].b.max_x, zones[i].b.max_y);
                    var latlons3 = new google.maps.LatLng(zones[i].b.min_x, zones[i].b.min_y);

                     obj1 = { zones[i].n = {1:latlons1,2:latlons2,3:latlons3}  } //here object creation

                    console.log(obj1);

                }

私が間違っていることは何ですか?consolログエラーはオブジェクトの作成時に表示されます。

4

2 に答える 2

6

JavaScriptでオブジェクトリテラルを作成する場合、キーと値はコロン()で区切られ:ます。また、動的キーを使用する場合は、これらのプロパティの設定とアクセスに角括弧表記を使用する必要があることに注意してください。したがって、この:

obj1 = { zones[i].n = {1:latlons1,2:latlons2,3:latlons3}  }

次のようになります。

obj1 = {};
obj1[zones[i].n] = {
    1: latlons1,
    2: latlons2,
    3: latlons3
};

なぜこのようにしなければならないのか混乱しているのは、キーが評価されていないためです。キーはによって参照される値である必要があることを意味しましたがzones[i].n、JavaScriptは、キーが文字列リテラル"zones[i].n"である必要があると解釈します。これは明らかにあなたが望むものではありません。

于 2012-10-23T12:02:43.717 に答える
0

オブジェクト内でオブジェクトを使用するには、

    //An object within an object
    var NestedObject=new Object();
    NestedObject.one={
    sad:{
    d:"Add"
    }
    }

Codecademy.com内の実験的なコーディングを使用してこれを解決しました。私の答えを共有させてくれてありがとう!

于 2014-04-08T11:58:13.863 に答える