私は現在、可能なすべてのキーと値のペアを使用してページの読み込み時にオブジェクトを作成し、true または false を使用してそれらの状態を判断しています。真である項目だけが存在する方が効率的ですが。
サンプルデータ:
filter = {
"country": 1,
"Age Group": {
2: false,
3: true,
4: false,
5: false,
6: false,
7: false
},
"Gender": {
1: false,
2: false
},
"NEWSEC": {
1: false,
2: true,
3: false,
4: false,
5: false
},
"Telco_Segment": {
1: true,
2: true,
3: true,
4: false,
5: false,
6: false
}
};
関数:
function facetBuilder(key, val)
{
if(key == 'country')
{
filter.country = val;
}
else
{
if( filter[key][val] == true )
{
filter[key][val] = false;
}
else
{
filter[key][val] = true;
}
}
console.log(filter);
}
問題:
これらのフィルターを適用するために使用する関数はそれらをループするため、値が含まれている場合に「Age Group」などのオブジェクトのみが存在する場合は、より有益です。実際には、次のようなものがあると便利です。
filter = {
"country": 1,
"Age Group": [3],
"NEWSEC": [2],
"Telco_Segment": [1,2,3]
};
facetBuilder を呼び出すと、基本的に、そのオブジェクトの値の存在に基づいてオブジェクトが追加/削除されます。
私はこれにアプローチする方法について空白を描いています。