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

 

问题描述:

很简单的一个根据条件判断结果的函数,传进来三个值;三个条件是互相依赖的,通过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 个答案:

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


有如下数据[ { "addData": "item1.child1" }, { "addData": "item1.child2" }, { "addData": ...