哎哟! 我头疼。在这个问题上工作了几个小时,我的大脑自发地陷入了困境。
基本上,同位素是在页面上隐藏或显示html元素,因此我需要以非常有效的方式在嵌入式地图上隐藏或显示相应的Google Maps标记(很多Google Maps标记)。
所以...我有一个充满对象的MASTERARRAY []。数组中的每个对象都有一个唯一的ID。
即MASTERARRAY [i] .id
此MASTERARRY []还具有关联的Google Maps标记对象。
即MASTERARRAY [i] .marker
当同位素过滤页面上页面上的HTML元素时,我将具有唯一ID的对象推送到以下数组之一:
ISOTOPEFILTER.resultsRemovedFromPage
ISOTOPEFILTER.resultsOnPageAfterFiltering
通过将MASTERARRAY与ISOTOPEFILTER.resultsRemovedFromPage进行比较,下面的代码将成功删除我的地图上的标记。但是,我不知道如何有效地使用此功能,还显示谁的ID存在于ISOTOPEFILTER.resultsOnPageAfterFiltering数组中的Google Map标记。
function updateMap() {
var hiddenMarkerCount = 0;
for (i in ISOTOPEFILTER.resultsRemovedFromPage) {
for (var j=0; j<MASTERARRAY.length; j++) {
if (ISOTOPEFILTER.resultsRemovedFromPage[i].id == MASTERARRAY[j].id){
hiddenMarkerCount++;
MASTERARRAY[j].marker.setMap(null);
break;
}
}
}
console.log("We have hidden"+hiddenMarkerCount+" markers");
}
与其将已删除和包含的对象存储在数组中,还不如将它们存储在以ID为键的对象中。然后,您可以执行以下操作:
for (var j = 0; j < MASTERARRAY.length; j++) {
if (ISOTOPEFILTER.resultsRemovedFromPage[MASTERARRAY[j].id]) {
// Do stuff for removed items
}
if (ISOTOPFILTER.resultsOnPageAfterFiltering[MASTERARRAY[j].id]) {
// Do stuff for included items
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句