var markerList1={};
var markerList=[];
并从for循环中添加迭代器值
function addSomething() // this function will multiple times from a for loop
{
image ='../css/abc/'+image[iterator]+'.png';
var data = respData[iterator];
var box = getbox(data);
var markerOpts = {
position : coordinates[iterator],
map : map,
icon :image,
title :data[1],
id : data[11]
};
var vmarks = new google.maps.Marker(markerOpts);
markerList.push(vmarks);
markerList1[markerOpts.title].push(vmarks);
}
每当我们调用函数时,我想将数组的值附加到相同的索引 markerList1 [数据[11]]推送(vmarks);
但我没有得到高于结果,当我在markerList1 [data [11])然后我只得到最后一个值,即thirdvmark
我想输出像这样= markerList1 [data [11]] = {firstvmark,secondvmark,thirdvmark};
答案 0 :(得分:0)
您无法push
对象markerList1
,只能对数组进行操作。
更改此
markerList1[markerOpts.title].push(vmarks);`
到此
markerList1[markerOpts.title] = vmarks;
答案 1 :(得分:0)
markerList1[data[11]]
在您推入内容之前从未初始化。
只需使用简单测试即可初始化一次:
if (! (data[11] in markerList1) ) {
markerList1[data[11]] = [];
}
markerList1[data[11]].push(vmarks);
或者采用更短更安全的方式:
markerList1[data[11]] = markerList1[data[11]] || [];
markerList1[data[11]].push(vmarks);
(请将data[11]
放入变量中)
答案 2 :(得分:0)
试试这个 -
var vmarks = new google.maps.Marker(markerOpts);
markerList.push(vmarks);//you already pushing vmarks to array
markerList1[markerOpts.title]=markerList;//assign array to your markerList1 map