Javascript 通过与其他两个阵列进行比较来筛选主阵列
哎哟!我头痛。我在这个问题上工作了好几个小时,我的脑子都快崩溃了 基本上,同位素在我的页面上隐藏或显示html元素,我需要以非常有效的方式在嵌入的地图上隐藏或显示相应的Google Maps标记(很多Google Maps标记) 所以。。。我有一个满是对象的MASTERARRAY[]。数组中的每个对象都有一个唯一的id i、 e.主数组[i].id 此MASTERARRY[]还关联了一个Google地图标记对象 i、 e.主阵列[i].标记器 当我在我的页面上过滤我的页面上的HTML元素时,我将具有唯一id的对象推送到以下数组之一:Javascript 通过与其他两个阵列进行比较来筛选主阵列,javascript,filtering,jquery-isotope,Javascript,Filtering,Jquery Isotope,哎哟!我头痛。我在这个问题上工作了好几个小时,我的脑子都快崩溃了 基本上,同位素在我的页面上隐藏或显示html元素,我需要以非常有效的方式在嵌入的地图上隐藏或显示相应的Google Maps标记(很多Google Maps标记) 所以。。。我有一个满是对象的MASTERARRAY[]。数组中的每个对象都有一个唯一的id i、 e.主数组[i].id 此MASTERARRY[]还关联了一个Google地图标记对象 i、 e.主阵列[i].标记器 当我在我的页面上过滤我的页面上的HTML元素时,我将
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");
}
函数更新映射(){
var hiddenMarkerCount=0;
对于(同位素过滤器中的i.resultsRemovedFromPage){
对于(var j=0;j而言,不要将移除的和包含的对象存储在数组中,而是将它们存储在一个与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
}
}
for(var j=0;j
我只是键入MASTERARRAY[]
以确保它也在注释中,这样每个人都可以看到它实际上是大写的,它被称为MASTERARRAY[]
!谢谢!虽然这项技术需要相当长的时间来重新编写原始代码,但最终的结果是非常快的。一旦我的对象设置好,实现起来非常简单。非常感谢!