我需要提示。我不是一名程序員,但我喜歡把自己的流程自動化,如果問題太簡單,不好意思。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,工作完美。謝謝。 –