我需要提示。我不是一名程序员,但我喜欢把自己的流程自动化,如果问题太简单,不好意思。Javascript - Dynamic .filter() - Json文件
我正在使用Google Maps API,并且在某些时候需要完成一个过滤器来定位我的InfoWindow
的内容。
我有各种过滤器的地图,适用于标记,并应扩展到InfoWindow
的内容。
我有我的InfoWindow
的内容JSON
,和我申请的过滤器是这样:(ARDS = JSON文件)
var as=$(ards).filter(function (i,n){
return n.ERB===marker.getTitle();
});
for (var i=0;i<as.length;i++)
{ .... }
好,它的工作原理,但我需要增加更多的变数过滤。
我拥有这些标记过滤器。
var cluster = $("#CLUSTER-select").val();
var client = $('#cli_re-select').val();
var type_cli = $('#type_cli-select').val();
var type_recla = $('#type_recla-select').val();
我只举了4个例子,但有大约10个过滤器。
过滤器是独立的,您可以随时选择任何一个。
我做了这样:
var combine = [];
combine = [];
if(cluster !== '0') {
combine.push('&& n.DESC_CLUSTER === ' + '"' + cluster + '"');
}
if(cliente_recente !== '0') {
combine.push('&& n.CLIENT_RE === ' + '"' + client + '"');
}
if(tipo_cli !== '0') {
combine.push('&& n.TYPE_CLI === ' + '"' + type_cli + '"');
}
if(tipo_reclama !== '0') {
combine.push('&& n.TYPE_RECLA === ' + '"' + type_recla + '"');
}
var filter_add;
filter_add = "1 = 1";
for(var i=0;i<combine.length;i++){
filter_add += combine[i];
}
结果为:1 = 1 && n.DESC_CLUSTER === "CTA" && n.TYPE_CLI === "SOHO"
我加在我的过滤器这个变量:
var as=$(ards).filter(function (i,n){
return n.ARMARIO_ERB===marker.getTitle() && filter_add;
});
但它没有工作,他不将值应用于结果,仅应用于第一部分。
我的问题是,如何才能做到这一动态过滤器?
谢谢。
Pritesh,工作完美。谢谢。 –