我目前在页面加载时使用所有可能的键/值对创建一个对象,并使用 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);
}
问题:
我用来应用这些过滤器的函数会循环遍历它们,因此如果我只存在诸如“年龄组”之类的对象(如果它包含任何值)会更有益。事实上,有这样的东西会很好:
filter = {
"country": 1,
"Age Group": [3],
"NEWSEC": [2],
"Telco_Segment": [1,2,3]
};
调用 facetBuilder 基本上会根据该对象的值的存在来添加/删除该对象。
我对如何处理这个问题一无所知。