晚上/早上好(取决于你的地方),
我是新手'开发者'(JS / Meteor平台),每天我都会发现一个关于JS的新东西。知道我的低级别,这并不难......
我目前想知道编码switch(true)
的最佳方式/做法。
更确切地说,我有一个Switch statement
,类似于20 cases
。
目前,我决定不将一些cases
嵌套在一起,我觉得它不太容易阅读。所以我的陈述看起来像这样:
switch()
case 1
case 2
case 3
case 4
case 5
case 6
...
default
而不是像:
switch()
case 1
if
elseif
else
//or
case 2
switch()
case 2.1
case 2.2
我的问题是:每个案例测试5个以上的功能。所以case
基本上就是这样编写的:
case ( function1()
&& function2()
&& function3() == null
&& typeof abc[1] === 'undefined'
&& function4() === 'xyz') : //etc...
有没有更好的方法来链接函数?
我目前正在以jQuery方式查看链接方法:function()。function2()。function3()......但我不知道它是否退出了更好的方法来处理这种情况。
我很乐意得到您的反馈/建议以及您推荐的任何阅读/讲座。我也希望这个问题对于SO来说是“正确的”。
非常感谢。
答案 0 :(得分:0)
您应始终努力防范小功能,以提高可读性。在新函数中对函数调用进行分组可能是个好主意。你越快确定一个函数做得越多越好。尽量只使用与当前函数相关的内容,例如:
您应该获取有关某人的大量信息,但信息会传播到不同的来源,迫使您有一个名称功能,一个用于年龄,一个用于鞋子尺寸等等。
而不是像
那样写case 1:
var person = {
name: getName(),
age: getAge(),
showSize: getShowSize()
};
你可以像
那样写case 1:
var person = getPerson();
getPerson函数
function getPerson() {
return {
name: getName(),
age: getAge(),
showSize: getShowSize()
}
}
在你的20个案例中,我确信在几种情况下都有逻辑的功能组。如果它们有任何逻辑连接,请尝试将它们组合在一起。使用20个大小的交换机,我会尝试在每种情况下都不会编写很多代码,因为它可能会让人很难看到函数的作用。
我希望我能解决你的问题并至少给你一些你觉得有用的建议。