1

只是一个关于 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}]
    };

谢谢 :)

4

1 回答 1

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 的实例化,那么您可以这样做:

 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}]
 }
于 2013-03-12T15:55:54.553 回答