JS对象结构和添加

时间:2013-03-12 15:51:39

标签: javascript arrays object push

关于JS对象结构的问题。我有一个名为mainObject的对象我想推送值,因此它们以类似第二部分代码的格式出现。值将循环添加。我希望能够做到以下几点: -

mainObject.data.push({lat : val['lat'], lng: val['lng'], count: 40});} 

有人能告诉我怎么做这个吗?试图了解JS对象。

var mainObject = {
    max: 46};

var mainObject = {
            max: 46,
            data: [{lat: 33.5363, lng:-117.044, count: 1},{lat: 33.5608, lng:-117.24, count: 1},{lat: 38, lng:-97, count: 1},{lat: 38.9358, lng:-77.1621, count: 1}]
    };

谢谢:)

1 个答案:

答案 0 :(得分:2)

在javascript中.push是为数组保留的。要添加到已具有属性的对象,您只需执行此操作即可。

var mainObject = {
    max: 46
};

mainObject.data = [{lat : val['lat'], lng: val['lng'], count: 40}];

然后你会得到一个看起来像这样的对象:

mainObject{
    max : 46,
    data : [{lat : val['lat'], lng: val['lng'], count: 40}]
}

这是你想要的。

编辑:

@cristoph指出,如果你改变初始mainObject的instansiation,那么你可以这样做:

 var mainObject = {
     max : 46,
     data : [] 
 }

 mainObject.data.push({lat : val['lat'], lng: val['lng'], count: 40});

哪会给你相同的结果。

无论哪种方式,您选择这样做,data属性为mainObject并且是一个数组,然后您可以继续使用.push向其中插入更多元素。

这样做是为了上述:

 mainObject.data.push({foo : bar});

会屈服:

 mainObject{
     max : 46,
     data : [{lat : val['lat'], lng: val['lng'], count: 40}, {foo : bar}]
 }