【发布时间】:2014-07-15 08:38:15
【问题描述】:
我有一个函数应该在二维数组中分配一个对象。不知何故,赋值覆盖了数组中的前一个对象。
var markersN = {};
var markersNArray = []
function addMarkerN(lat, lng, id, name, key) {
markersN[key] = {};
var newMark = new google.maps.Marker({
/*marker properties*/
});
markersNArray.push(newMark); //This pushes every object to a one dimensional array just fine
markersN[key][id] = newMark; //This replaces the previous object in the markersN[key] array
}
这就是我调用函数的方式:
for(var j=0; j<sekolah[i].nonlat.length; j++){
addMarkerN(sekolah[i].nonlat[j], sekolah[i].nonlon[j], j, sekolah[i].nonname[j], sekolah[i].key);
}
这就是我想要的数组:
Array
(
[0] => Array
(
[0] => { /*marker object*/ }
[1] => { /*marker object*/ }
)
)
结果是这样的:
Array
(
[0] => Array
(
[1] => { /*marker object*/ }
)
)
我在这里做错了吗?如何防止函数覆盖数组中的前一个对象?
谢谢。
【问题讨论】:
-
最好提供一些样本数据
sekolah,所以我们不对结构做出假设。
标签: javascript arrays object multidimensional-array