gpt4 book ai didi

Javascript - 动态 .filter() - Json 文件

转载 作者:行者123 更新时间:2023-12-03 07:45:24 25 4
gpt4 key购买 nike

我需要提示。我不是程序员,但我喜欢捕获机会自动化流程,如果问题太基础,请原谅。

我正在使用 Google Maps API,有时需要完成一个过滤器来定位我的 InfoWindow 内容。

我有一个带有各种过滤器的 map ,这些过滤器适用于标记并应扩展到 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;
});

但它不起作用,他没有将值应用于结果,仅将第一部分应用于结果。

我的问题是,还有什么办法可以完成这个动态过滤器?

谢谢。

最佳答案

由于每个过滤器都是独立的,因此您需要为每个过滤器指定一个标志,指定是否检查该条件。如果检查了该标志,则将条件结果与 filterFlag 相与(这用于过滤器功能)。像这样的事情:

var cluster = $( "#CLUSTER-select" ).val();
var client = $('#cli_re-select').val();
var as=$(ards).filter(function (i,n){
var filterFlag=true;
if(cluster !='0'){
// Code for cluster
filterFlag = filterFlag && ____ // add result of above code : TRUE or FALSE
}
if(client != '0' ){
// code here
filterFlag = filterFlag && ____ // add result of above code : TRUE or FALSE
}
//......same for others
//......
return filterFlag;
});

如果您不明白这一点,请告诉我。我需要您的代码,以便我可以直接修复它。

关于Javascript - 动态 .filter() - Json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35229348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com