Javascript 仅当它不为null或未定义时进行筛选 results.data .过滤器((x)=>国家/地区。包括(x.国家/地区)) .filter((x)=>x.car\u model\u year>startYear&&x.car\u model\u yearx.gender.toLowerCase()==gender.toLowerCase()) .过滤器((x)=>颜色。包括(x.car\u颜色)),

Javascript 仅当它不为null或未定义时进行筛选 results.data .过滤器((x)=>国家/地区。包括(x.国家/地区)) .filter((x)=>x.car\u model\u year>startYear&&x.car\u model\u yearx.gender.toLowerCase()==gender.toLowerCase()) .过滤器((x)=>颜色。包括(x.car\u颜色)),,javascript,Javascript,我有这段代码,上面的国家、起始日期、结束日期、性别和颜色是可以为空或未定义的变量。问题是,如果该变量为空(null或未定义),它应该忽略该特定变量的过滤。实现它的最佳方法是什么,谢谢。您可以使用或操作符 results.data .filter((x) => countries.includes(x.country)) .filter((x) => x.car_model_year > startYear &am

我有这段代码,上面的国家、起始日期、结束日期、性别和颜色是可以为空或未定义的变量。问题是,如果该变量为空(null或未定义),它应该忽略该特定变量的过滤。实现它的最佳方法是什么,谢谢。

您可以使用
操作符

     results.data
              .filter((x) => countries.includes(x.country))
              .filter((x) => x.car_model_year > startYear && x.car_model_year < endYear)
              .filter((x) => x.gender.toLowerCase() === gender.toLowerCase())
              .filter((x) => colours.includes(x.car_color)),
results.data
.filter(x=>!countries | | countries.includes(x.country))
.过滤器(
x=>(!startYear | | x.car_model_year>startYear)
&&(!endYear | | x.car_model_year!gender | | x.gender.toLowerCase()==gender.toLowerCase())
.filter(x=>!colors | |.filter((x)=>colors.includes(x.car|u color)))

依此类推。

您可以使用
运算符

     results.data
              .filter((x) => countries.includes(x.country))
              .filter((x) => x.car_model_year > startYear && x.car_model_year < endYear)
              .filter((x) => x.gender.toLowerCase() === gender.toLowerCase())
              .filter((x) => colours.includes(x.car_color)),
results.data
.filter(x=>!countries | | countries.includes(x.country))
.过滤器(
x=>(!startYear | | x.car_model_year>startYear)
&&(!endYear | | x.car_model_year!gender | | x.gender.toLowerCase()==gender.toLowerCase())
.filter(x=>!colors | |.filter((x)=>colors.includes(x.car|u color)))

以此类推。

您可以通过将值与
null
进行比较来检查值是否为
null
未定义的
(请参阅),因此只需检查每个筛选表达式的
即可,它们仅在值不为
null
未定义的情况下进行筛选

results.data
  .filter(x => !countries || countries.includes(x.country))
  .filter(
    x => (!startYear || x.car_model_year > startYear)
      && (!endYear || x.car_model_year < endYear)
  )
  .filter(x => !gender || x.gender.toLowerCase() === gender.toLowerCase())
  .filter(x => !colours || .filter((x) => colours.includes(x.car_color)))
results.data
.filter((x)=>countries==null | | countries.includes(x.country))
.filter((x)=>startYear==null | | endYear==null | | x.car|u model_year>startYear&x.car_model_yeargender==null | | x.gender.toLowerCase()==gender.toLowerCase())
.filter((x)=>colors==null | | colors.包括(x.car|u color))

您可以通过将某个值与
null
进行比较来检查该值是否为
null
未定义
(请参阅),因此只需检查每个筛选表达式的
即可,它们只会在该值不为
null
未定义
时进行筛选

results.data
  .filter(x => !countries || countries.includes(x.country))
  .filter(
    x => (!startYear || x.car_model_year > startYear)
      && (!endYear || x.car_model_year < endYear)
  )
  .filter(x => !gender || x.gender.toLowerCase() === gender.toLowerCase())
  .filter(x => !colours || .filter((x) => colours.includes(x.car_color)))
results.data
.filter((x)=>countries==null | | countries.includes(x.country))
.filter((x)=>startYear==null | | endYear==null | | x.car|u model_year>startYear&x.car_model_yeargender==null | | x.gender.toLowerCase()==gender.toLowerCase())
.filter((x)=>colors==null | | colors.包括(x.car|u color))