我有一系列产品,我想过滤所有这些产品。这里的级别也是一个数组,因为我使用了复选框,因此如果用户选择级别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"]));

09-27 08:06