【发布时间】:2020-06-20 11:56:16
【问题描述】:
我在 Ruby 中找到了这段代码(来自 here):
DX = { E => 1, W => -1, N => 0, S => 0 }
我正在考虑如何在 JS 中最好地格式化它,因为它缺少“何时”功能。
作为参考,N、S、E 和 W 是“方向”,并具有如下别名:const N = 1, S = 2, E = 4, W = 8;
我本来想做一个快速箭头功能,后来做了这个:
function DX(dir) {
if(dir==E) return 1;
if(dir==W) return -1;
if(dir==N) return 0;
if(dir==S) return 0;
}
我觉得有点长,所以我试着缩短它:
function DX(dir) {
if(dir==E) return 1;
if(dir==W) return -1;
return 0;
}
然后再说一遍:
function DX(dir) {
return dir==E ? 1 : dir==W ? -1 : 0;
}
但是现在我们遇到了这个代码不太可读的问题。所以我决定记录下来:
// returns the distance in x traveled by that direction
// E => 1, W => -1, N => 0, S => 0
function DX(dir) {
return dir==E ? 1 : dir==W ? -1 : 0;
}
最后,我将其转换为变量语法和箭头函数:
let DX = (dir) => dir==E ? 1 : dir==W ? -1 : 0;
现在显然,所有这些代码都有效,但我的问题是作为一种风格,被认为是“最好的”,无论是在行业中,在您看来,还是在您具体工作的地方?我认为可读性高于一切,那么您认为哪个代码最易读?我个人更喜欢文档部分。
【问题讨论】:
-
DX = dir => !!(dir&4) - !!(dir&8)。不过开个玩笑。
标签: javascript readability code-readability