在对象Javascript中创建对象

时间:2012-10-23 11:58:34

标签: javascript object

我的代码:

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);

                }

我做错了什么?控制台日志错误显示在对象创建。

2 个答案:

答案 0 :(得分: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",这显然不是您想要的。

答案 1 :(得分:0)

要在对象中使用对象,

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

我在Codecademy.com中使用实验编码解决了这个问题。 谢谢你让我分享我的答案!