javascript - 根据范围滑块的值范围过滤结果的最佳方法?
问题描述
我有一个范围滑块,可以根据它们的output
键过滤 JavaScript 对象:
<input id="outputSlider" class="form-control" type="range" min="4" max="10">
这是一个对象的小例子:(其中有 50 个)
const stratPickups = {
"Model 1": {
name: "Model 1",
design: "single-coil",
output: 4,
tone: 3,
},
"Model 2": {
name: "Model 2",
design: "single-coil",
output: 5,
tone: 5,
},
"Model 3": {
name: "Model 3",
design: "single-coil",
output: 6,
tone: 6,
},
}
在滑块的输入上,它在此处调用此函数:
const outputSliderFunction = () => {
const slider = document.querySelector("#outputSlider");
let sliderValue = Number(slider.value);
activeFilters.output = sliderValue; //Pushes the slider value into an object called activeFilters
const filteredData = performFilter(data, activeFilters);
refreshView(filteredData); //Displays the "cards" with the product information
};
现在,这是有效的,但我想改进它。它现在的工作方式,如果sliderValue
匹配output
,卡片将显示在页面上。但是,滑块范围中有很大一部分没有显示任何结果。我想更改函数以接受一系列输入,但我不确定如何以及正在寻找想法。
我以为我可以将对象更改为具有min-output
andmax-output
并弄清楚当滑块值介于它们之间时如何显示结果,但我不确定我该怎么做。
有任何想法吗?
这是 performFilter 函数:
const performFilter = (data, activeFilters) => {
let result = data;
Object.keys(activeFilters).forEach((key) => {
result = result.filter((d) => d[key] === activeFilters[key]);
});
return result;
};
解决方案
推荐阅读
- c++ - 从动态分配的数组中索引超出范围的元素是否有效
- javascript - Google Workbox 中的自定义插件
- asp.net-core - IdentityServer4如何处理returnUrl
- python - Python将.png图像显示到tkinter
- c# - HTTPGet 使用多个字段从数据库中获取数据
- java - 在一组字符串中搜索字符
- javascript - 为什么我的 router.post() 只允许一项操作?
- java - macOS - Java Runtime Environment 1.8 或 10 是必需的,应在安装 Teradata Studio 应用程序之前安装
- asp.net-core - 相机位置导致物体消失
- javascript - JQuery 从@Html.DropDownListFor asp.net mvc multiselect dropdownlistbox 获取最后更改的值