我有一系列产品,我想过滤所有这些产品。这里的级别也是一个数组,因为我使用了复选框,因此如果用户选择级别1,则应显示级别1的产品,如果用户再次选择级别2,则应显示级别1和2的产品。但是,我正在获得所有产品,而不是所选级别。
这是我的代码
// sample product data
products = [
{id: "1", sellerLevel: "new", status: "online"},
{id: "1", sellerLevel: "1", status: "offline"},
{id: "1", sellerLevel: "1", status: "offline"},
{id: "1", sellerLevel: "2", status: "online"}
]
function productFilterFromLevel({level}) { // level ["new", "1"]
return products.filter(function(product) {
return level.filter(function(lvl) {
return product.sellerLevel === lvl;
});
});
}
最佳答案
// sample product data
products = [{
id: "1",
sellerLevel: "new",
status: "online"
}, {
id: "1",
sellerLevel: "1",
status: "offline"
}, {
id: "1",
sellerLevel: "1",
status: "offline"
}, {
id: "1",
sellerLevel: "2",
status: "online"
}]
function productFilterFromLevel(level) {
return products.filter(function(product) {
return level.indexOf(product.sellerLevel) != -1;
});
}
console.log(productFilterFromLevel(["new", "1"]));