我在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;
现在显然,所有这些代码都可以工作,但是我的问题是作为一种样式方式,您认为该样式是“最佳”,无论是在行业中,还是您在哪里专门工作?我认为可读性高于一切,那么您认为哪个代码可读性最好?我个人更喜欢带有文档的部分。
只需带一个对象。
const DX = { E: 1, W: -1, N: 0, S: 0 };
// use
value = DC[dir];