微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有比多重if语句更短的方法吗?

如何解决有比多重if语句更短的方法吗?

我一直在研究一个项目,该项目使用滤镜向我展示了IGDB API的游戏。但是现在我遇到了多个if语句的问题。
它可以工作,但是看起来很丑,而且不是很好的代码

if (rating != "" && date != "" && platform != "") {
    return "where " + rating + " & " + date + " & " + platform + ";";
} else if (rating != "" && date == "" && platform == "") {
     return "where " + rating + ";";
} else if (rating != "" && date != "" && platform == "") {
     return "where " + rating + " & " + date + ";";
} else if (date != "" && rating == "" && platform == "") {
     return "where " + date + ";";
}

我尝试了一些不同的方法,但是没有用。
我该如何改善呢?

解决方法

您可以分别为每个属性尝试一个if块,然后使用数组存储结果并在最后将其加入。不会小很多,但我认为它更清洁并且可以扩展得多。

let attributes = [];
if (rating !== ""){
  attributes.push(rating);
}
if (date !== ""){
  attributes.push(date);
}
if (platform !== ""){
  attributes.push(platform);
}
return "where " + attributes.join(" & ") + ";";

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。