好的,我不知道该怎么说.
这是我的代码:
var ratio, input={w:100,h:50};
if(input.w <= input.h) ratio = input.h / input.w;
else ratio = input.w / input.h;
Run Code Online (Sandbox Code Playgroud)
问题:
是否有更快,更好,"需要更少代码"的计算方法ratio?比if/else语句.
谢谢!
Luc*_*ore 10
您可以使用三元条件运算符.句法:
condition ? (statement if true) : (statement if false);
Run Code Online (Sandbox Code Playgroud)
在你的情况下:
ratio = (input.w <= input.h) ? (input.h/input.w) : (input.w/input.h);
Run Code Online (Sandbox Code Playgroud)
编辑:
这并不比你的解决方案快,写入速度更快.我建议不要使用:
var ratio = Math.Max(input.w, input.h) / Math.Min(input.w, input.h)
Run Code Online (Sandbox Code Playgroud)
这将比较数字两次(一次在Math.Max中,一次在Math.Min中)并且会更慢.
var ratio = Math.max(input.w, input.h) / Math.min(input.w, input.h)
Run Code Online (Sandbox Code Playgroud)
另一个[可能更有效]:
var ratio = Math.max(input.w / input.h, 1 / input.w / input.h);
Run Code Online (Sandbox Code Playgroud)
甚至比三元更有效:
var ratio = w / h ;
ratio = ratio > 1 && ratio || 1/ratio
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
472 次 |
| 最近记录: |