gpt4 book ai didi

javascript - 在 JavaScript 对象中堆叠过滤器值不起作用

转载 作者:行者123 更新时间:2023-11-28 17:33:25 25 4
gpt4 key购买 nike

我有一个函数,它接受各种过滤器值(每个过滤器的值存储在一个数组中)并将它们集中存储在一个对象中。我的想法是,通过这样做,我应该能够堆叠这些值 - 即,如果我有一个过滤器的值,然后选择第二个过滤器,这不应该消除第一个过滤器值,只要我'我返回完整的对象 - 这就是我正在做的事情。然而,由于某种原因,选择新的过滤器会消除先前选择的过滤器的值。这是我的代码:

public filterByTypes(value, type) {
let location = '', agency = '', zipcode = '', firstName = '', lastName = '', state = '';

if (value && type && type === 'location')
{
location = value;
}
if (value && type && type === 'agency')
{
agency = value;
}
else if (value && type && type === 'zip')
{
zipcode = value;
}
else if (value && type && type === 'firstName')
{
firstName = value;
}
else if (value && type && type === 'lastName')
{
lastName = value;
}
else if (value && type && type === 'state')
{
state = value;
}
return { location, agency, zipcode, firstName, lastName, state };
}

正如我所说,由于我返回一个带有每个值参数的对象,因此在我看来,这应该返回所有堆叠的值,而不仅仅是最近选择的值。然而,这就是正在发生的事情 - 当选择新的过滤器时,它会清除先前/不同过滤器中的值。我在这里缺少什么?

最佳答案

每次运行该函数时,您都会重置所有按键。尝试改为:

var filters = {};
function setFilter(type, value) {
if(value && type) { filters[type] = value; }
return filters;
}

如果您正在管理一个对象,“filters”可以是一个属性,“setFilter”可以是一个方法。

关于javascript - 在 JavaScript 对象中堆叠过滤器值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49739866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com