关于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}]
};
谢谢:)
答案 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}]
}