Javascript optimizing if statement
Javascript optimizing if statement
有没有办法压缩这个if
语句?
var alive1 = true
if (x2 >= (x10 - 10) && x2 <= (x10 + 10) && y2 >= (y10 - 10) && y2 <= (y10 + 10) || x3 >= (x10 - 10) && x3 <= (x10 + 10) && y3 >= (y10 - 10) && y3 <= (y10 + 10) || x4 >= (x10 - 10) && x4 <= (x10 + 10) && y4 >= (y10 - 10) && y4 <= (y10 + 10) || x5 >= (x10 - 10) && x5 <= (x10 + 10) && y5 >= (y10 - 10) && y5 <= (y10 + 10)|| x6 >= (x10 - 10) && x6 <= (x10 + 10) && y6 >= (y10 - 10) && y6 <= (y10 + 10)) {
alive1 = false;
}
你不能真正"压缩"代码,但你可以让它更具可读性。
您正在根据相同的条件检查数字对,因此对数组可能是最好的方法。
您还可以通过在for
循环之外计算x10 - 10
等来进一步提高性能和可读性。
var alive1 = true;
var minX = x10 - 10;
var maxX = x10 + 10;
var minY = y10 - 10;
var maxY = y10 - 10;
var coords = [[x2,y2], [x3,y3], [x4,y4], [x5,y5], [x6,y6]];
// loop each [x,y] pair
for(var i = 0; i < coords.length; i++) {
var x = coords[i][0];
var y = coords[i][1];
if(x >= minX && x <= maxX && y >= minY && y <= maxY) {
alive1 = false;
// found a false condition, no need to continue the loop
break;
}
}
由于您只是检查x2
是否在x10
的 10 以内,y2
是否在y10
的 10 以内,依此类推,您可以将其更改为:
if (Math.abs(x2 - x10) <= 10 && Math.abs(y2 - y10) <= 10 && ...) {
alive1 = false;
}
相关文章:
- Jquery else if statement
- Rails 3 if statement with jQuery?
- JQuery Else if statement?
- 在jQuery .load Ajax之后执行if-statement
- Javascript if statement if (ball.style.left === '0px'
- If-Statement中的Javascript元素验证
- Javascript document.cookie if statement
- Javascript Logic In a loop/if statement
- Javascript if statement Google Tools
- Javascript IF statement
- ActionScript 3 If/ Else If Statement
- Javascript if-statement vs. comparsion
- Javascript condense if statement
- 嵌套的 if's:使用 if (x) {statement;} 还是 if (!x) 返回更好;陈述;
- Javascript optimizing if statement
- Javascript and CSS if statement
- JQUERY, AJAX if else statement
- Vuejs IF statement
- Datatables Find Replace If Statement
- javascript msgbox if statement