Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
198 views
in Technique[技术] by (71.8m points)

javascript - filtering only if it is not null or undefined

     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)),

I have this piece of code above countries, startYear, endYear, gender and colours are variables that can be null or undefined. The issue is it should ignore the filteration for that specific variable if the variable is empty(null or undefined). What is the best way to implement it, thank you.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You can check if a value is null or undefined by comparing it to null (see this answer), so just OR that check into each of your filter expressions and they will only filter if the value is not null or undefined.

results.data
       .filter((x) => countries == null || countries.includes(x.country))
       .filter((x) => startYear == null || endYear == null || x.car_model_year > startYear && x.car_model_year < endYear)
       .filter((x) => gender == null || x.gender.toLowerCase() === gender.toLowerCase())
       .filter((x) => colours == null || colours.includes(x.car_color))

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...