我在这件事上失去理智了。我的最后一个问题回答了一个语法问题,但没有解决使它正常运行的问题,所以这里......
我的对象:
filter = {
"country": 1,
"Age Group": [],
"Gender": [],
"NEWSEC": [],
"Telco_Segment": []
};
我的功能:
function buildFacets(key, val)
{
if(key == 'country')
{
filter.country = val;
}
else
{
if(val in filter[key])
{
delete filter[key][val];
}
else
{
filter[key].push(val);
}
}
console.log(filter);
}
我的问题是我的函数是将传入值与数组索引进行比较,而不是数组值。例如,如果我调用 buildFacets("Age Group",2) 我将在该数组中获得一个值 2。但是,如果我再次调用它,它只会将另一个值 '2' 添加到数组中,而不是删除'2' 已经存在,因为它与索引比较,即 0。
我希望我解释得对。如果需要澄清,请告诉我。