ここでコードは冗長コードを削除し、コードを別の機能に移動しようとしています。冗長コードを削除して別のJqueryファンクションに移動したい
//Adding Infotypes to filter and checks whether any infotype option is selected
if(this.$infoOptions.val() != null){
var infotypelength = this.$infoOptions.val().length;
var l=0,j;
//Condition to check empty input type
if(infotypelength > 0){
var infotypeList = this.$infoOptions.val();
for(j = 0; j < infotypelength; j++) {
//It checks whether already option is selected and prevents adding to filter if its duplicate.
if(($.inArray($('#infoOptions').select2('data')[j].text, filterList)) == -1){
this.filter.push($('#infoOptions').select2('data')[j].text);
if(infotypeList[j].contains('_subgroup')){
var res = infotypeList[j].split("_");
this.aSubinfotype[l]=res[0];
l=l+1;
}
else
this.aInfotypes.push(infotypeList[j]);
}
}
}
}
//Adding Countries to filter
if(this.$countryOptions.val() != null){
var geoLength = this.$countryOptions.val().length;
//Condition to check empty input type
if(geoLength > 0){
var geoList = this.$countryOptions.val();
var l=0;
for(var j = 0; j < geoLength; j++) {
if(($.inArray($('#countryOptions').select2('data')[j].text, filterList)) == -1){
this.filter.push($('#countryOptions').select2('data')[j].text);
if(geoList[j].contains('_subgroup')){
var res = geoList[j].split("_");
this.aSubgeotype[l]=res[0];
l=l+1;
}
else
this.aGeography.push(geoList[j]);
}
}
}
}
しかし、変数とキャッシュされたセレクタを他の関数に渡す際に問題に直面しています。誰もこれで私を助けることができますか?
あなたはそれを行うために時間のヘルプは必要ありません...両方のブロックの間で異なるデータを抽出し、これらのデータをパラメータに使って関数を作成してください... – Kashkain
返信いただきありがとうございます。キャッシュされたセレクタ($( '#infoOptions')、select2( 'data'))を引数として関数に渡すにはどうしたらいいですか?値をグローバル変数にプッシュしたいのですが、ローカルスコープの配列ではありません。いくつかの例で私を助けてください。 –