【发布时间】:2023-03-15 21:11:01
【问题描述】:
我很难解决这个问题。我有两个数组(cars 和 active_filters)。 cars 数组包含带有诸如汽车类型、座位数、价格等属性的 html li 标签。active_filters 数组包含与用户交互的过滤器相关的对象,并将用于显示或隐藏哪些汽车。
示例:当查看active filters 以获取 id data-type 时,value 属性包括用户想要显示的所有汽车代码的列表。如果未找到汽车数据类型或等于这些汽车代码之一,我的目标是通过向每辆汽车添加类 type 来隐藏这些汽车。所以在这种情况下,这些汽车应该添加 filtered-out-by-car-type 类。
我注意到我目前在下面的性能非常缓慢。另外,我一直不知道如何从与找到的汽车相关联的 active_filters 访问特定的type。感谢任何帮助!非常感谢!!
汽车:
<li data-partner-code="EZ" data-type="XXAR" data-seats="2" data-bags="2" data-prepaid="Y" data-transmission="Automatic" data-unlimited-miles="Y" data-price="84.81" class="listing">
<li data-partner-code="AV" data-type="SFAR" data-seats="4" data-bags="2" data-prepaid="N" data-transmission="Automatic" data-unlimited-miles="Y" data-price="125.54" class="listing">
<li data-partner-code="BU" data-type="CCAR" data-seats="4" data-bags="2" data-prepaid="N" data-transmission="Automatic" data-unlimited-miles="N" data-price="65.42" class="listing">
<li data-partner-code="BU" data-type="CCAR" data-seats="4" data-bags="2" data-prepaid="N" data-transmission="Automatic" data-unlimited-miles="N" data-price="65.42" class="listing">
<li data-partner-code="FX" data-type="MCAR" data-seats="2" data-bags="1" data-prepaid="N" data-transmission="Automatic" data-unlimited-miles="N" data-price="32.00" class="listing">
有源过滤器:
{id: "data-seats", value: "1", type: "filtered-out-by-seats"}
{id: "data-bags", value: "2", type: "filtered-out-by-bags"}
{id: "data-partner-code", value: "ET,EY,BU", type: "filtered-out-by-company"}
{id: "data-type", value: "IFAR,SFAR,PGAR,RFAR,FFAR,XXAR", type: "filtered-out-by-car-type"}
当前代码:
cars.forEach(function(car)
{
var found = active_filters.find(function(filter) {
var filter_value = filter.value.split(","); // getting unique value
for (var i=0; i<filter_value.length; i++)
{
if (car.attr(filter.id) === filter_value[i])
{
return car; // Why is this returning active_filters element instead of car?
}
}
});
// Todo: How can I access active_filters.type associated to the car that was found?
if (!found)
{
car.addClass(active_filters.type); // ?
}
});
【问题讨论】:
标签: javascript jquery arrays object foreach