Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
201 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 Reply

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...