У меня есть массив, который я фильтрую с помощью этой функции:
function filter(arr, criteria) {
return arr.filter(function(obj) {
return Object.keys(criteria).every(function(c) {
return !(criteria[c]) || obj[c] == criteria[c];
});
});
}
var arr = filter(arr, { dep: dv, arr: av, car: cv, epi: acv, dur: dv });
И у меня есть куча опций, которые пользователь может выбрать в выборе. Для продолжительности, вот что я имею:
<select name="duration" id="duration">
<option selected disabled hidden value="">-</option>
<option value="l1">Less than 1 hour</option>
<option value="1to3">1 to 3 hours</option>
<option value="3to6">3 to 6 hours</option>
<option value="6to10">6 to 10 hours</option>
<option value="m10">More than 10 hours</option>
</select>
Но этот фильтр основан на точных критериях. Я хочу отфильтровать числа с плавающей запятой в arr
, которые находятся между 1 и 3 или 6 и 10. Я также хочу иметь возможность запускать другие фильтры, которые вы видите там с помощью dep, arr, car, epi, dur. Есть ли способ сделать это?