1. 使用 Array.includes 来处理多重条件
举个栗子 🌰:
1 | // 条件语句 |
乍一看,这么写似乎没什么大问题。然而,如果我们想要匹配更多的红色水果呢,比方说『樱桃』和『蔓越莓』?我们是不是得用更多的 || 来扩展这条语句?
我们可以使用 Array.includes(Array.includes) 重写以上条件句。
1 | function test(fruit) { |
我们把红色的水果(条件)都提取到一个数组中,这使得我们的代码看起来更加整洁。
2. 少写嵌套,尽早返回
让我们为之前的例子添加两个条件:
- 如果没有提供水果,抛出错误。
- 如果该水果的数量大于 10,将其打印出来。
1 | function test(fruit, quantity) { |
遵循的一个总的规则是当发现无效条件时尽早返回
1 | /_ 当发现无效条件时尽早返回 _/ |
3. 相较于 switch,Map / Object 也许是更好的选择
让我们看下面的例子,我们想要根据颜色打印出各种水果:
1 | function test(color) { |
上面的代码看上去并没有错,但是它看上去很冗长。同样的结果可以通过对象字面量来实现,语法也更加简洁:
1 | // 使用对象字面量来找到对应颜色的水果 |
或者,你也可以使用 Map 来实现同样的效果:
1 | // 使用 Map 来找到对应颜色的水果 |