【发布时间】:2023-03-21 04:29:02
【问题描述】:
如何动态声明一组过滤条件而不必指定过滤器的数量?
例如,如果我有一组数据,像这样:
var data = [
{ item: { type: 'wood', size: 10 } },
{ item: { type: 'wood', size: 8 } },
{ item: { type: 'metal', size: 8 } }
]
我知道我可以使用 JS .filter() 来获取所有具有 type wood 和 size 8 的项目:
function filterItems() {
return data.filter(function(val) {
return val['item'].type == 'wood' &&
val['item'].size == 8;
}
}
但是,如果我想用未知数量的过滤器过滤项目,并让 .filter() 返回所有符合这些条件的 data 项目怎么办?
Here is a codepen反映了上面的代码。
【问题讨论】:
-
如何将这些动态过滤条件传递给您的代码?
-
我有一个服务 Javascript 文件,它接受动态输入,然后根据输入标准返回过滤后的数据。这是你想知道的吗?
-
我会编写一个简单的比较器函数,然后将我的标准链接到一系列过滤器中,例如:
r.filter(comp, ["type","wood"]).filter(comp, ["size",8);
标签: javascript