JavaScript中避免条件分支的最佳方法是什么:
if(a && b) return doW();
if (a && !b) return doX();
if(!a && b) return doY();
if(!a && !b) return doZ();
答案 0 :(得分:3)
稍微不同(但等效)的结构可能更具可读性,具体取决于a / b实际上是什么。您可以避免在a
和b
的所有组合中使用一些嵌套来平坦分支:
if (a) {
return b ? doW() : doX();
}
else {
return b ? doY() : doZ();
}
或:
if (a) {
if (b) doW();
else doX();
}
else {
if (b) doY();
else doZ();
}
我认为条件逻辑在这里是理想的,所以不需要避免if/else
逻辑。但是,如果你真的对某种方式感兴趣,那么使用地图这是一个有趣的解决方案:
var map = {
true: {
true: doW,
false: doX
},
false: {
true: doY,
false: doZ
}
}
map[a][b]();
答案 1 :(得分:0)
您可以使用对象文字来存储您的函数。
class Diagonal {
static char [][] colorArray = new char [5][5];
public static void main(String args[])
{
for (int i = 0; i < 5; i++ ) {
// Even rows, including 0th row
if ((i%2)==0) {
// Color in locations with even indexes
for (int j =0; j < 5; j++ ) {
if ((j%2)==0) {
colorArray[i][j] = 255;
}
}
} else { // Odd rows
for (int j =0; j < 5; j++ ) {
// Color in locations with odd indexes
if ((j%2)!=0) {
colorArray[i][j] = 255;
}
}
}
}
}
}