当前位置: 首页 > 知识库问答 >
问题:

javascript - 这样的函数如何优化最合适?

姚树
2023-05-19

很简单的一个根据条件判断结果的函数,传进来三个值;三个条件是互相依赖的,通过switch来判断返回出结果

function(x,y,z){
    switch(x)
    {
        case 1:
            switch(y){
                case 1:
                    switch(z){
                        case 1:
                            return 'ok'
                            break;
                        case 2:
                            return 'ok'
                            break;
                        //这里有20种判断条件
                        ....
                        default:
                            return 'no';
                        }
        .......
}

其中参数z传进来后,里面大约有20种判断条件;x与y也会有好几个判断条件
如果按照以上我的写法,可以整个函数会写很长;有什么其他更好的写法吗?

共有1个答案

籍辰沛
2023-05-19
function getStatus(x,y,z) {
    // 所有条件都符合用every
    return [
        [1], // x ok
        [1], // y ok
        [1,2], // z ok
    ].every((arr,i) => arr.includes([x,y,z][i])) ? 'ok' : 'no'
}

console.log(getStatus(1,1,1)) // ok
console.log(getStatus(1,1,2)) // ok
console.log(getStatus(1,1,3)) // no

 类似资料:
  • 这样一堆 if 合理吗?后面还会加判断,会更多。 再拆分的话感觉不太好,有更好的方法吗?

  • 数学优化 处理寻找一个函数的最小值(最大值或零)的问题。在这种情况下,这个函数被称为成本函数,或目标函数,或能量。 这里,我们感兴趣的是使用scipy.optimize来进行黑盒优化: 我们不依赖于我们优化的函数的算术表达式。注意这个表达式通常可以用于高效的、非黑盒优化。 先决条件 Numpy, Scipy matplotlib 也可以看一下: 参考 数学优化是非常 ... 数学的。如果你需要性能

  • 这是我的actionCreator代码,crud所有的代码都一样,只需要改一个 “getMovies" 这个名字,所以我想要把这个函数封装一下,每次只需要传入一个函数名字就行了。求大佬给封装一下?? 感谢

  • 本文向大家介绍如何优化打印样式?相关面试题,主要包含被问及如何优化打印样式?时的应答技巧和注意事项,需要的朋友参考一下 参考文章

  • 问题内容: 代码是这样的(语法可能看起来很奇怪,但据我所知,它没有任何问题。还是存在?) 被声明为一个函数。因此,当我将参数传递给它时,它也应该返回结果。 那么,为什么我没有得到第二个警告框? 问题答案: 您会看到一个命名函数表达式(NFE)。 匿名函数表达式是您将没有名称的函数分配给变量1的地方: 命名函数表达式是您将命名函数分配给变量的地方(惊奇!): 函数名称仅在函数本身内可用。这使您无需知

  • 如何将两个方法合并成一个方法 如图parentValues = ['BC', 'BC-SRV', 'BC-SRV-COM'], 想得到的是选中的树组arrSelectedFacets = ['BC-SRV-COM-FTP', 'BC-SRV-COM-TEL'] 如果 BC-SRV-COM 下的子节点都选中,则arrSelectedFacets=['BC-SRV-COM']